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


Posted in NodeJs onSeptember 25, 2016

进行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');
}
NodeJs 相关文章推荐
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
NodeJS使用jQuery选择器操作DOM
Feb 13 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
详解nodejs中的process进程
Mar 19 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 NodeJs
详解redis在nodejs中的应用
May 02 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 NodeJs
nodejs微信公众号支付开发
Sep 19 #NodeJs
nodeJs内存泄漏问题详解
Sep 05 #NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 #NodeJs
NodeJS远程代码执行
Aug 28 #NodeJs
用NodeJS实现批量查询地理位置的经纬度接口
Aug 16 #NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 #NodeJs
NodeJs的优势和适合开发的程序
Aug 14 #NodeJs
You might like
curl实现站外采集的方法和技巧
2014/01/31 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
PHP.vs.JAVA
2016/04/29 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python操作ie登陆土豆网的方法
2015/05/09 Python
python版飞机大战代码分享
2018/11/20 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
解决python 上传图片限制格式问题
2019/10/30 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
Python如何对齐字符串
2020/07/30 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
初中政治教学反思
2014/01/17 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
先进事迹材料怎么写
2014/12/30 职场文书
python_tkinter事件类型详情
2022/03/20 Python
如何使用python包中的sched事件调度器
2022/04/30 Python