進(jìn)行NodeJs開發(fā)時(shí)偶然發(fā)現(xiàn)的一個(gè)雷點(diǎn)
正常情況下從JSON文件讀取到字符后再通過JSON.parse沒什么問題,只要格式不出錯(cuò)
有時(shí)在確保JSON格式正確時(shí)仍然會(huì)出現(xiàn)unexpected token異常
經(jīng)過調(diào)查發(fā)現(xiàn)里面有不會(huì)顯示的unicode字符
于是確定是UTF-8的問題,utf-8分有dom版和無dom版,一般編輯器不刻意設(shè)置會(huì)默認(rèn)保存為帶dom的utf8
解決辦法是先將讀到的文件轉(zhuǎn)成二進(jìn)制,然后檢索dom符號(hào)刪除
代碼實(shí)現(xiàn)部分
function readText(pathname) { var bin = fs.readFileSync(pathname); if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) { bin = bin.slice(3); } return bin.toString('utf-8');}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注