NodeJs读取JSON文件格式化时的注意事项

进行NodeJs开发时偶然发现的一个雷点

正常情况下从JSON文件读取到字符后再通过JSON.parse没什么问题,只要格式不出错

有时在确保JSON格式正确时仍然会出现unexpected token异常

经过调查发现里面有不会显示的unicode字符

于是确定是UTF-8的问题,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');
}

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。