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

const encodedText = btoa(searchText);


这似乎工作得很好,并且在后端部分进行如下解码:

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


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

我不确定自己做错了什么。

最佳答案

你可以用

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


而是先编码unicode字符。

请参阅Unicode stringsThe "Unicode Problem"以获得更多信息。



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

关于java - Base64编码BTOA,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53315768/

10-09 19:03