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实现获取当前url地址及url各种参数值
Jun 25 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
浅谈nodejs中的类定义和继承的套路
Jul 26 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
Nodejs封装类似express框架的路由实例详解
Jan 05 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
一周学会PHP(视频)Http下载
2006/12/12 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
php读取本地json文件的实例
2018/03/07 PHP
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
Python数组定义方法
2016/04/13 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
python开头的coding设置方法
2019/08/08 Python
python中列表的含义及用法
2020/05/26 Python
详解python对象之间的交互
2020/09/29 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
python中实现词云图的示例
2020/12/19 Python
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
幼儿教师国培感言
2014/02/19 职场文书
遗嘱继承公证书
2014/04/09 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB