Base64 кодировка btoa - PullRequest
       0

Base64 кодировка btoa

0 голосов
/ 15 ноября 2018

Я кодирую некоторый текст в моей части интерфейса, используя функцию btoa:

const encodedText = btoa(searchText);

Кажется, что это работает совершенно нормально, и декодирование идет таким образом на серверной части:

byte[] decodedBytes = Base64.getDecoder().decode(searchedText);
String decodedString = new String(decodedBytes, Charset.defaultCharset());

Что тоже отлично работает. Тем не менее, это, кажется, не работает при использовании буквы ü. Моя программа кодирует его как A ==, и, насколько я знаю, это должно быть w7w =

Я не уверен, что сделал неправильно.

1 Ответ

0 голосов
/ 15 ноября 2018

Вы можете использовать

const encodedText = btoa(unescape(encodeURIComponent(searchText)));

вместо того, чтобы сначала кодировать символы Unicode.

См. Строки Unicode и «Проблема Unicode» длядальнейшее чтение.

console.log(btoa('ü'));
console.log(btoa(unescape(encodeURIComponent('ü'))));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...