NodeJs读取JSON文件格式化时的注意事项
进行NodeJs开发时偶然发现的一个雷点
正常情况下从JSON文件读取到字符后再通过JSON.parse没什么问题,只要格式不出错
有时在确保JSON格式正确时仍然会出现unexpectedtoken异常
经过调查发现里面有不会显示的unicode字符
于是确定是UTF-8的问题,utf-8分有dom版和无dom版,一般编辑器不刻意设置会默认保存为带dom的utf8
解决办法是先将读到的文件转成二进制,然后检索dom符号删除
代码实现部分
functionreadText(pathname){ varbin=fs.readFileSync(pathname); if(bin[0]===0xEF&&bin[1]===0xBB&&bin[2]===0xBF){ bin=bin.slice(3); } returnbin.toString('utf-8'); }