使用 CasperJS 将法语字符写入 CSV 文件,但显示不正确

Writing french characters to CSV file with CasperJS, but not displayed correctly

我正在使用 CasperJS,但是 none 这与网络抓取部分有关。

我正在将字符串(包含法语字符)打印到 csv。当我稍后打开该 csv 文件时,所有法语字符都无法正确显示。

var fs = require('fs');

var content = 'ë,è,é';

var path = 'target.csv';

fs.write(path, content, 'w');

这最终被写成�

有什么办法可以在JS脚本中更改CSV的编码?我知道记事本另存为技巧,但它需要自动化。如果不行,是否可以通过命令行来完成?

Excel(至少我的版本)需要 Byte Order Mark 才能正确显示 CSV 文件中的 UTF-8 内容。您可以通过在内容前面加上 JavaScript.

中的 \uFEFF unicode 字符来实现此目的

为简单起见,这是 PhantomJS 中的完整脚本(CasperJS 以相同的方式运行,因为它在 PhantomJS 中运行):

var fs = require('fs');

var content = 'ë,è,é';
var path = 'data.csv';
fs.write(path, "\uFEFF" + content, 'w');

phantom.exit();

确保脚本文件本身也是 UTF-8 编码的。