Node.js中讀取文件後用Json.parse方法報錯解決方案

今天,在調試一個node項目時,發現了一個很大的坑,在此分享給你們!node

你們都知道,Json.parse()方法對格式要求是很嚴格的,格式不對極其容易報錯,可是有時候格式看似是正確的也會報錯.dom

好比這一段在控制檯能夠正確的用Json.parse()方法解析出來,可是我把它放到記事本中仍然能夠正確讀取到如出一轍的數據編輯器

可是若是此時用JSON.parse方法解析這段字符串就會報錯.工具

爲何呢,由於記事本這個編輯工具在手動保存時會自動把數據作一些處理,致使數據看起來是對的,可是卻沒法解析,由於數據裏面攙雜着不會顯示的unicode字符,spa

utf-8分有dom版和無dom版,通常編輯器不刻意設置會默認保存爲帶dom的utf8,解決辦法是先將讀到的文件轉成二進制,而後檢索dom符號刪除,如下是方法:3d

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' );
}
相關文章
相關標籤/搜索