时间:2021-05-26
1. 确定json文件是UTF-8 无BOM编码的的。如果有BOM,会在读取第一行的时候出现乱码。
Per"fs.readFileSync(filename, 'utf8') doesn't strip BOM markers #1918",fs.readFileis
working as designed:BOM isnotstripped from the header of the UTF-8 file, if it exists.It at the discretion of the developer to handle this.
Possible workarounds:
What you are getting is the byte order mark header (BOM) of the UTF-8 file. WhenJSON.parsesees
this, it gives an syntax error (read: "unexpected character" error). You must strip the byte order mark from the file before passing it toJSON.parse:
2. 确定json没有格式错误。我在用utf8编码并用utf8 encoding来读取文件之后依然报错,百思不得其解。
最后发现json有两个editor没有发现的格式错误,一个是一个数组中两个元素之间少了一个“,”,另一个是另一个数组最后多了一个“,”。
注1:Node的iconv模块,仅支持linux,不支持Windows,因此要用纯js的iconv-lite,另:作者说iconv-lite的性能更好,具体参考Git站点:iconv-lite
注2:我在测试读写文件时,始终无法把中文写入文件,一直乱码,读取正常,后来同事帮我发现:js文件的编码格式是ansi,nodejs的代码文件必须是utf8格式
注3:如果程序操作的文件,都是以UTF8编码格式保存的,那么就不需要使用iconv模块,直接以utf8格式读取文件即可,如:
//参数file,必须保存为utf8格式,否则里面的中文会乱码functionreadFile(file){//readFile的第2个参数表示读取编码格式,如果未传递这个参数,表示返回Buffer字节数组fs.readFile(file,"utf8",function(err,data){if(err)console.log("读取文件fail"+err);else{//读取成功时console.log(data);//直接输出中文字符串了}});}nodejs读取中文文件编码问题
准备一个文本文件(当然也可以是csv文件等)test.txt和text.csv,nodejs文件test.js如下:
直接读文件的话是乱码,不信你可以试试。需要先统一用二进制编码方式读取,然后再用GBK解码。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android读取本地json文件的方法。分享给大家供大家参考,具体如下:1、读取本地JSON,但是显示汉字乱码publicstaticStrin
本文实例讲述了C#读取中文文件出现乱码的解决方法。分享给大家供大家参考。具体分析如下:先来看这段代码:FileStreamaFile=newFileStream
本文讲述了php中json_encode处理gbk与gb2312中文乱码问题的解决方法,具体方法如下:1.json_encode()中文在gbk/gb2312中
Java解决读写本地文件中文乱码的问题前言:在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码。原因其实很简单,就是系统的编码和
本文实例讲述了PHP附件下载中文名称乱码的解决方法。分享给大家供大家参考,具体如下:PHP中,如果要下载的文件名称为中文,则会出现文件标题乱码。此时就需要对标题