Mine - проект Phonegap, поддерживающий две платформы (Android и IOS).
Для любого запроса сервера мне нужно установить заголовок авторизации. Этот заголовок должен быть в кодированном формате base64 UTF-16LE для получения ответа.
Я могу кодировать его на base64, используя плагин jquery base-64.
var base64Enc=$.base64.encode("[email protected]"+":"+"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("[email protected]:Password01".getBytes("UTF-16LE")))
Пожалуйста, помогите мне, как это сделать в JavaScript/jquery. В JQuery есть любой плагин, чтобы сделать это coversion, или мне нужно использовать любые утилиты для достижения этого.
Пожалуйста, помогите мне в этом. Спасибо заранее.
Предполагая, что вам не нужно поддерживать IE <10, используйте собственный ECMAScript.
window.atob()
1 и window.btoa()
2Поскольку:
DOMStrings - это строки с 16-битным кодированием 3
/* Base64 Encode */
var base64Enc = window.btoa("[email protected]"+":"+"Password01");
/* Base64 Decode (as UTF16 DOMString) */
var utf16Dec = window.atob(base64Enc);
1https://developer.mozilla.org/en-US/docs/Web/API/window.atob
2https://developer.mozilla.org/en-US/docs/Web/API/window.btoa
3https://developer.mozilla.org/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding