文章出處

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

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

比如這一段在控制臺可以正確的用Json.parse()方法解析出來,但是我把它放到記事本中仍然可以正確讀取到一模一樣的數據

但是如果此時用JSON.parse方法解析這段字符串就會報錯.

為什么呢,因為記事本這個編輯工具在手動保存時會自動把數據做一些處理,導致數據看起來是對的,但是卻無法解析,因為數據里面攙雜著不會顯示的unicode字符,

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');
}

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()