Как конвертировать закодированную базу 64 в UTF-16LE в javascript / jquery

0

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, или мне нужно использовать любые утилиты для достижения этого.

Пожалуйста, помогите мне в этом. Спасибо заранее.

Теги:
cordova

1 ответ

0
Лучший ответ

Предполагая, что вам не нужно поддерживать 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

  • 0
    Mine - мобильное приложение (Phonegap), которое я поддерживаю для Android и IOS. Будет ли этот подход работать для мобильных приложений?
  • 0
    AFAIK, да. Насколько я понимаю, Phonegap просто оборачивает веб-видение, поэтому он все еще скрывает Javascript / HTML и т. Д. Вышеупомянутый подход работает в Webkit, который по своей природе работает как для iOS, так и для Android-браузеров.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню