0

Mine 是一个支持两个平台(Android 和 IOS)的 Phonegap 项目。

对于任何服务器请求,我需要设置授权标头。此标头应采用编码的 base64 UTF-16LE 格式以接收响应。

我可以使用 jquery base-64 插件将其编码为 base64。

var base64Enc=$.base64.encode("Surya@gmail.com"+":"+"Password01");

这很好用。但我需要将其转换为 UTF-16LE,它必须设置为我的请求的授权标头。

beforeSend: function(xhr){
             xhr.setRequestHeader("Content-Type", "application/json");
             xhr.setRequestHeader("Authorization", "Basic " + base64Enc);
        },

如何将 base64Enc 转换为 UTF-16LE。在java中我可以通过使用来做同样的事情new String(Base64.encodeBase64("Surya@gmail.com:Password01".getBytes("UTF-16LE")))

请帮助我如何在 JavaScript/jquery 中执行此操作。Jquery 是否有任何插件来执行此操作,或者我是否必须使用任何实用程序来实现此操作。

请帮助我。在此先感谢。

4

1 回答 1

0

假设您不必支持 IE < 10,请使用本机 ECMAScript。

使用window.atob()1window.btoa()2

自从:

DOMStrings 是 16 位编码的字符串3

/* Base64 Encode */ 
var base64Enc = window.btoa("Surya@gmail.com"+":"+"Password01");

/* Base64 Decode (as UTF16 DOMString) */
var utf16Dec = window.atob(base64Enc);

1 https://developer.mozilla.org/en-US/docs/Web/API/window.atob

2 https://developer.mozilla.org/en-US/docs/Web/API/window.btoa

3 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding

于 2013-10-22T15:06:22.243 回答