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

网络编程 2025-03-13 03:31www.168986.cn编程入门

偶然发现的Node.js开发中的一道难题

在正常的开发中,我们从JSON文件中读取字符并通过JSON.parse进行处理,一般只要格式正确,就不会出现问题。但你有没有遇到过,明明确保JSON格式无误,却仍然出现unexpected token异常的情况呢?

最近我在进行Node.js开发时,就遇到了这样的困扰。经过深入调查,我发现问题出在那些看不见的unicode字符上。

原来是UTF-8编码的问题,UTF-8分为带DOM的UTF-8和无DOM的UTF-8,通常情况下,编辑器如果不特意设置,默认保存的都是带DOM的UTF-8。

解决这个问题的方法是将读取的文件先转为二进制,然后搜索并删除那些DOM符号。接下来,让我来分享一下具体的代码实现。

有一个名为`readText`的函数,它的作用就是读取文件内容。

```javascript

function readText(pathname) {

var bin = fs.readFileSync(pathname); // 同步读取文件内容到二进制格式

// 如果文件是以UTF-8带BOM头的方式保存的,那么就移除BOM头

if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) {

bin = bin.slice(3);

}

// 将二进制格式转为字符串格式,此处默认为UTF-8编码

return bin.toString('utf-8');

}

```

当你遇到类似的问题时,可以尝试使用上述方法来解决。希望这篇文章能对你有所帮助,如果你有任何疑问或者需要进一步的解释,欢迎随时向我提问。如果你喜欢我的文章,也请点赞、分享给你的朋友们,让更多的人了解这个问题和解决方案。

上一篇:微信小程序里使用SVG矢量图标方法详解 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by