首页 > Web开发 > 详细

Node.js中读取文件后用Json.parse方法报错

时间:2017-01-14 14:51:03      阅读:313      评论:0      收藏:0      [点我收藏+]

今天,在调试一个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‘);
}

Node.js中读取文件后用Json.parse方法报错

原文:http://www.cnblogs.com/XieJunBao/p/6285303.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!