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 相关文章推荐
NodeJS的模块写法入门(实例代码)
Mar 07 NodeJs
基于NodeJS的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
nodejs 整合kindEditor实现图片上传
Feb 03 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
nodejs搭建本地服务器并访问文件的方法
Mar 03 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
Sep 18 NodeJs
NodeJs实现定时任务的示例代码
Dec 05 NodeJs
Nodejs连接mysql并实现增、删、改、查操作的方法详解
Jan 04 NodeJs
nodejs之koa2请求示例(GET,POST)
Aug 07 NodeJs
NVM安装nodejs的方法实用步骤
Jan 16 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 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
图书管理程序(一)
2006/10/09 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
PHP使用函数用法详解
2018/09/30 PHP
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
js实现点赞效果
2020/03/16 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
python中的变量如何开辟内存
2018/06/26 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
语文教学感言
2014/02/06 职场文书
求职信名称怎么写
2014/05/26 职场文书
建筑工地大门标语
2014/06/18 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
导游词欢迎词
2015/02/02 职场文书
个性发展自我评价2015
2015/03/09 职场文书
关于分班的感言
2015/08/04 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏