進行NodeJs開發時偶然發現的一個雷點
正常情況下從JSON檔案讀取到字元後再透過JSON.parse沒什麼問題,只要格式不出錯
有時在確保JSON格式正確時仍然會出現unexpected token異常
經過調查發現裡面有不會顯示的unicode字符
於是確定是UTF-8的問題,utf-8分有dom版和無dom版,一般編輯器不刻意設置會默認保存為帶dom的utf8
解決方法是先將讀到的檔案轉成二進制,然後檢索dom符號刪除
程式碼實作部分
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'); }
更多NodeJs讀取JSON檔案格式化時的注意事項相關文章請關注PHP中文網!