我使用的是CasperJS,但这些都与网页抓取部分无关。
我将字符串(包含法语字符)打印到csv。当我稍后打开该csv文件时,所有法语字符都无法正确显示。
var fs = require('fs');
var content = 'ë,è,é';
var path = 'target.csv';
fs.write(path, content, 'w');
最终写成�
有没有办法,在JS脚本中,我可以更改CSV的编码?我知道记事本的省略技巧,但它需要自动化。如果没有,是否可以通过命令行完成?
答案 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编码。