Base64编码btoa

时间:2018-11-15 09:04:46

标签: java angular encoding

我正在使用btoa函数在前端部分编码一些文本:

const encodedText = btoa(searchText);

这似乎完全可以正常工作,并且解码在后端部分是这样的:

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

这也可以。但是,使用ü字母时,这似乎失败了。我的程序将其编码为A ==,据我所知,应该为w7w =

我不确定我做错了什么。

1 个答案:

答案 0 :(得分:3)

您可以使用

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

而不是先对Unicode字符进行编码。

请参阅Unicode stringsThe "Unicode Problem"进行进一步的阅读。

console.log(btoa('ü'));
console.log(btoa(unescape(encodeURIComponent('ü'))));