我正在使用btoa函数在前端部分编码一些文本:
const encodedText = btoa(searchText);
这似乎完全可以正常工作,并且解码在后端部分是这样的:
byte[] decodedBytes = Base64.getDecoder().decode(searchedText);
String decodedString = new String(decodedBytes, Charset.defaultCharset());
这也可以。但是,使用ü字母时,这似乎失败了。我的程序将其编码为A ==,据我所知,应该为w7w =
我不确定我做错了什么。
答案 0 :(得分:3)
您可以使用
const encodedText = btoa(unescape(encodeURIComponent(searchText)));
而不是先对Unicode字符进行编码。
请参阅Unicode strings和The "Unicode Problem"进行进一步的阅读。
console.log(btoa('ü'));
console.log(btoa(unescape(encodeURIComponent('ü'))));