将UTF-8 csv文件转换为Excel可读的csv

我用node.js生成一个utf-8编码的csv,然后用双击在窗口上打开它。 Excel开始,但一些特殊的字符(如Ä,Ö,Ü,ä,ö,ü…)没有正确显示。 我认为这是由于错误的编码。 我保存了一个用excel创build的新csv。 我看到编码是Windows-1252。

我GOOGLE了很多,尝试了很多,但没有解决scheme。

我尝试使用https://github.com/mathiasbynens/windows-1252和https://github.com/kvz/phpjs/tree/master/functions/xml的组合

data = helper.utf8_encode(data); data = helper.utf8_decode(data); data = windows1252.encode(data); data = windows1252.decode(data); data = helper.utf8_encode(windows1252.encode(data)); data = helper.utf8_encode(windows1252.decode(data)); data = helper.utf8_decode(windows1252.encode(data)); data = helper.utf8_decode(windows1252.decode(data)); data = windows1252.encode(helper.utf8_encode(data)); data = windows1252.decode(helper.utf8_encode(data)); data = windows1252.encode(helper.utf8_decode(data)); data = windows1252.decode(helper.utf8_decode(data)); 

但没有任何工作。 请帮帮我

更新:通过修补,我发现这些代码显示为希望的字符,但仍然缺lesslowercasedäöü。 有人有任何想法?

 \u0101 => Ä \u010D => Ä \u011D => Ä \u0120 => Ä \u0581 => Ö \u058D => Ö \u058F => Ö \u0590 => Ö \u059D => Ö \u05A0 => Ö \u0701 => Ü \u070D => Ü \u070F => Ü \u0710 => Ü \u071D => Ü \u0720 => Ü \u07C1 => ß \u07CD => ß \u07D0 => ß \u07DD => ß \u07E0 => ß 

我并不完全满意这个答案,因为我得到了npm install iconv命令的警告。 不过,它应该解决你的问题:

 const Iconv = require('iconv').Iconv; const fs = require('fs'); const iconv = new Iconv('utf8', 'utf16le'); let csvContent = 'ÉëÜè whatever you want'; fs.writeFileSync('test.csv', iconv.convert(csvContent)); 
  • 原始来源: http : //terminaln00b.ghost.io/excel-just-save-it-as-a-csv-noooooooo/
  • 总结一下: https : //davidburgos.blog/export-csv-with-correct-charset-in-nodejs/