NodeJs读取JSON文件格式化时的注意事项
偶然发现的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');
}
```
当你遇到类似的问题时,可以尝试使用上述方法来解决。希望这篇文章能对你有所帮助,如果你有任何疑问或者需要进一步的解释,欢迎随时向我提问。如果你喜欢我的文章,也请点赞、分享给你的朋友们,让更多的人了解这个问题和解决方案。
编程语言
- NodeJs读取JSON文件格式化时的注意事项
- 微信小程序里使用SVG矢量图标方法详解
- PHP 读取大文件的X行到Y行内容的实现代码
- 浅谈jquery.fn.extend与jquery.extend区别
- sql 判断字符串中是否包含数字和字母的方法
- Vue点击切换颜色的方法
- GridView导出Excel常见的5种文本格式 -font color=red-原
- 解决Vue.js 2.0 有时双向绑定img src属性失败的问题
- PHP按行读取、处理较大CSV文件的代码实例
- 在vue中更换字体,本地存储字体非引用在线字体库
- JavaScript原生节点操作小结
- JavaScript中setUTCFullYear()方法的使用简介
- JavaScript中的Math.LOG2E属性使用详解
- sqlserver服务器验证改为混合验证模式步骤
- 启动iis出现发生意外0x8ffe2740的解决方法
- thinkPHP5 ajax提交表单操作实例分析