Javascript 使用fast csv模块转换文件utf8
我有一个名为“file.csv”的文件,该文件包含以下数据:Javascript 使用fast csv模块转换文件utf8,javascript,node.js,unicode,Javascript,Node.js,Unicode,我有一个名为“file.csv”的文件,该文件包含以下数据: ID Full name 1 Steve 2 John 3 nam 4 Hạnh 5 Thủy 我使用下面的段代码将此文件解析为json文件。但我的结果不是utf8 代码: 结果: data: { id: '��I\u0000D\u0000', full_name: '\u0000F\u0000u\u0000l\u
ID Full name
1 Steve
2 John
3 nam
4 Hạnh
5 Thủy
我使用下面的段代码将此文件解析为json文件。但我的结果不是utf8
代码:
结果:
data: { id: '��I\u0000D\u0000', full_name: '\u0000F\u0000u\u0000l\u0000l\u0000 \u0000n\u0000a\u0000m\u0000e\u0000' }
data: { id: '\u00001\u0000',full_name: '\u0000S\u0000t\u0000e\u0000v\u0000e\u0000' }
data: { id: '\u00002\u0000',full_name: '\u0000J\u0000o\u0000h\u0000n\u0000' }
data: { id: '\u00003\u0000',full_name: '\u0000n\u0000a\u0000m\u0000' }
data: { id: '\u00004\u0000', full_name: '\u0000H\u0000�\u001en\u0000h\u0000' }
data: { id: '\u00005\u0000',full_name: '\u0000T\u0000h\u0000�\u001ey\u0000' }
data: { id: '\u0000', full_name: '' }
如何将我的结果转换为utf8?请查看
在本例中,您需要解码转义的unicode字符。节点中包含的名为punycode的库可以处理此问题
通过以下方式导入punycode:
var punycode = require("punycode");
更改:
console.log("firstName: ", data);
致:
您可能需要进一步分解
数据
对象以解码其属性,但我无法从您的回答中判断其结构。您的输入文件是用UTF-16LE编码的,但它已被读取,就好像它是UTF-8一样
尝试使用
fs.createReadStream('file.csv',{encoding:'utf-16le'})打开文件
一个小建议。将输出作为文本而不是图像发布,以便其他人可以使用它进行测试。我认为,也许punycode也是一种解决方案。但我不明白它是干什么的。:)是的,你说得对。我承认我的错误是终端显示。
console.log("firstName: ", data);
console.log("firstName: ", punycode.ucs2.decode(data));