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

时间:2016-04-01 17:20:40

标签: javascript csv utf-8 phantomjs casperjs

我使用的是CasperJS,但这些都与网页抓取部分无关。

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

var fs = require('fs');

var content = 'ë,è,é';

var path = 'target.csv';

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

最终写成�

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

1 个答案:

答案 0 :(得分:2)

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编码。