已经用了这个方法还是乱码求解?
//识别中文
function toUtf8(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(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
console.log(out);
return out;
}
只要中间加了图片就乱码,不加就可以可以。为啥呢?不应该啊
$("#qrcode").qrcode({
render: "canvas", //table方式
width: 400, //宽度
height:400, //高度
src: '../../img/dy.png',
text: str, //任意内容
});
这样可以吗:
toUtf8('你好,世界');
function toUtf8(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 >= 0x4E00 && c <= 0x9FA5) { //汉字编码
out += String.fromCharCode(c);
}
}
console.log(out);
return out;
}
不行,中文部分还是乱码
例如 浙GJ857C 生成的二维码扫描出来就是YGJ857C
@三水木00: 我调试 ok 的,你是用我的代码吗
@三人乐乐: console.log(out); 输出是对的,但是真正生成二维码就乱了