NodeJs讀取JSON文件格式化時(shí)的注意事項(xiàng)
進(jìn)行NodeJs開發(fā)時(shí)偶然發(fā)現(xiàn)的一個(gè)雷點(diǎn)
正常情況下從JSON文件讀取到字符后再通過(guò)JSON.parse沒什么問(wèn)題,只要格式不出錯(cuò)
有時(shí)在確保JSON格式正確時(shí)仍然會(huì)出現(xiàn)unexpected token異常
經(jīng)過(guò)調(diào)查發(fā)現(xiàn)里面有不會(huì)顯示的unicode字符
于是確定是UTF-8的問(wèn)題,utf-8分有dom版和無(wú)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');
}
相關(guān)文章
node.js實(shí)現(xiàn)博客小爬蟲的實(shí)例代碼
這篇文章通過(guò)實(shí)例代碼來(lái)給大家介紹如何利用node.js實(shí)現(xiàn)博客小爬蟲,有需要的朋友們可以直接運(yùn)用文中給出的實(shí)例代碼來(lái)進(jìn)行實(shí)踐學(xué)習(xí),感興趣的朋友們下面來(lái)一起看看吧。2016-10-10
websocket結(jié)合node.js實(shí)現(xiàn)雙向通信的示例代碼
本文主要介紹了websocket結(jié)合node.js實(shí)現(xiàn)雙向通信的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Node.js Addons翻譯(C/C++擴(kuò)展)
這篇文章主要介紹了Node.js Addons翻譯(C/C++擴(kuò)展) 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
nodejs的http和https下載遠(yuǎn)程資源post數(shù)據(jù)實(shí)例
這篇文章主要為大家介紹了nodejs的http和https下載遠(yuǎn)程資源post數(shù)據(jù)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

