最近有個需求,要吧二維碼解析成文本,用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; }
經過該方法,將的到的字符串作轉換,獲得正確的中文。
問題搞定。文檔