jquery.qrcode生成中文内容二维码乱码问题

jquery-qrcode是采用charCodeAt()方式进行编码转换的。这个方法默认会获取它的Unicode编码导致乱码,所以我们只需要将生成二维码的文本转成utf8编码问题即可解决。

转换成utf8编码的代码如下:

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));
        }
    }
    return out;
}

参考资料:https://www.cnblogs.com/syq816/p/8025087.html


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍