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学习笔记之MongoDB模块
Jan 13 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
进阶之初探nodeJS
Jan 24 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
基于nodejs+express4.X实现文件下载的实例代码
Jul 13 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 NodeJs
NodeJS配置CORS实现过程详解
Dec 02 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 正则匹配函数体
2009/08/25 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
django解决跨域请求的问题
2018/11/11 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python url 参数修改方法
2018/12/26 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
什么是.net的Remoting技术
2016/07/08 面试题
地质灾害防治方案
2014/05/14 职场文书
中秋节活动总结
2014/08/29 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
python状态机transitions库详解
2021/06/02 Python