qrcodejs二維碼識別中文解碼亂碼問題

問題描述

最近有個需求,要吧二維碼解析成文本,用qrcode解析英文是正常的,解析成中文的時候會亂碼,找了很久的資料,暫時是解決了, 不知道是否是具備通用性,先記錄一下.net

參考文檔
參考了上面這位大佬的代碼。用他提供的方法作了轉換,可是仍是亂碼。問題並無獲得解決code

後面又找到以下方法:blog

function decodeStr(str) {
            var out, i, len, c;
            var char2, char3;
            out = "";
            len = str.length;
            i = 0;
            while (i < len) {
                c = str.charCodeAt(i++);
                switch (c >> 4) {
                    case 0:
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    case 7:
                        // 0xxxxxxx
                        out += str.charAt(i - 1);
                        break;
                    case 12:
                    case 13:
                        // 110x xxxx 10xx xxxx
                        char2 = str.charCodeAt(i++);
                        out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
                        break;
                    case 14:
                        // 1110 xxxx 10xx xxxx 10xx xxxx
                        char2 = str.charCodeAt(i++);
                        char3 = str.charCodeAt(i++);
                        out += String.fromCharCode(((c & 0x0F) << 12) |
                            ((char2 & 0x3F) << 6) |
                            ((char3 & 0x3F) << 0));
                        break;
                }
            }
            return out;
        }

經過該方法,將的到的字符串作轉換,獲得正確的中文。
問題搞定。文檔

相關文章
相關標籤/搜索