Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用fast csv模块转换文件utf8_Javascript_Node.js_Unicode - Fatal编程技术网

Javascript 使用fast csv模块转换文件utf8

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

我有一个名为“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\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));