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实现的一个简单udp广播服务器、客户端
Sep 25 NodeJs
nodejs教程之环境安装及运行
Nov 21 NodeJs
nodeJS代码实现计算交社保是否合适
Mar 09 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
nodejs中各种加密算法的实现详解
Jul 11 NodeJs
Nodejs 识别图片类型的方法
Aug 15 NodeJs
nodejs中的异步编程知识点详解
Jan 17 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 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
php discuz 主题表和回帖表的设计
2009/03/13 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
javascript 自动转到命名锚记
2009/01/10 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
Python3里的super()和__class__使用介绍
2015/04/23 Python
使用Python绘制图表大全总结
2017/02/11 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
Pytorch to(device)用法
2020/01/08 Python
Python3运算符常见用法分析
2020/02/14 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
财产公证书样本
2014/04/04 职场文书
质量管理标语
2014/06/12 职场文书
会议室标语
2014/06/21 职场文书
中国梦团日活动总结
2014/07/07 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python