首页 新闻 会员 周边

jquery.qrcode二维码生成器中文乱码

0
悬赏园豆:10 [待解决问题]

已经用了这个方法还是乱码求解?
//识别中文
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, //任意内容
});

三水木00的主页 三水木00 | 初学一级 | 园豆:172
提问于:2019-04-24 15:33
< >
分享
所有回答(1)
0

这样可以吗:

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;
}
三人乐乐 | 园豆:4819 (老鸟四级) | 2019-04-24 16:04

不行,中文部分还是乱码

支持(0) 反对(0) 三水木00 | 园豆:172 (初学一级) | 2019-04-24 16:08

例如 浙GJ857C 生成的二维码扫描出来就是YGJ857C

支持(0) 反对(0) 三水木00 | 园豆:172 (初学一级) | 2019-04-24 16:12

@三水木00: 我调试 ok 的,你是用我的代码吗

支持(0) 反对(0) 三人乐乐 | 园豆:4819 (老鸟四级) | 2019-04-24 16:16

@三人乐乐: console.log(out); 输出是对的,但是真正生成二维码就乱了

支持(0) 反对(0) 三水木00 | 园豆:172 (初学一级) | 2019-04-24 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册