项目背景:采用phonegap插件编程,Object-C中接收base64编码后字符串传递给前端js部分,js解码base64后发现英文OK,中文乱码!
不得不说,中文乱码问题始终是我天朝程序员需要关心的一个问题!
网上查了好久,又结合自己的分析,终于查到了原因:UTF8页面的编码在存储时实际上还是用的UTF-16!
解决方法:解码后把utf8还原为utf16即可。
附上网上找的utf8与utf16互相转换的实现:
//utf-16转utf8
utf16to8 : function(str) {
var out, i, len, c;
out = "";
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode