Как я могу кодировать произвольные байты / данные в формате base64, используя Javascript? - PullRequest
4 голосов
/ 22 апреля 2011

Например, скажем, я хотел закодировать 64-разрядное целое число со знаком в base64, как я мог (если это возможно) сделать это в Javascript?

Чтобы уточнить, я хочу кодировать фактические биты / байты данных, а НЕ строку или строковое представление данных.

т.е. целое число 15 в десятичном виде равно 0000 1111 в двоичном, что равно Dw == в форме base64.

Я не хочу кодировать строковое представление целого числа 15. Для сравнения, если вы кодируете строку «15» в base64, вы фактически кодируете 0011 0001 0011 0101, что даст вам MTU = в форме base64 ( это то, что window.atob() делает).

Ответы [ 2 ]

3 голосов
/ 23 апреля 2011

Сначала преобразуйте в строку, затем используйте btoa или один из других стандартных кодеров b64:

window.btoa(String.fromCharCode(15)); // Dw==
2 голосов
/ 22 апреля 2011

Вы можете использовать window.btoa () в браузерах, которые его поддерживают, в других браузерах вы можете использовать этот кодер .

- редактирование

Вам придется написать все самому, так как все, что вы передадите в 'window.btoa', будет сначала преобразовано в строку. Этот ответ может быть хорошим началом; хотя Gears больше не поддерживается, многие соответствующие функции содержатся в HTML5 / W3C File API , который имеет некоторые экспериментальные реализации .

...