我正在使用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 strings和The "Unicode Problem"以获得更多信息。
console.log(btoa('ü'));
console.log(btoa(unescape(encodeURIComponent('ü'))));
关于java - Base64编码BTOA,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53315768/