将iso-8859-1转换为utf-8 javascript
我尝试parsing一个“iso-8859-1”页面并用utf-8保存到我的数据库,这是我的代码:
var buffer = iconv.encode(data, "iso-8859-1"); data = iconv.decode(buffer, 'utf8');
它不起作用。 所有符号像å或ä转换成�
我怎样才能保存这些符号?
你需要一个第三方库来完成这个任务。 您正在使用iconv-lite,因此您需要执行以下步骤:
-
以二进制模式打开input文件,所以JavaScript不会假定UTF-8也不尝试转换为其内部编码:
var fs = require("fs"); var input = fs.readFileSync(inputFilePath, {encoding: "binary"});
-
从ISO-8859-1转换到缓冲区 :
var iconv = require('iconv-lite'); var output = iconv.decode(input, "ISO-8859-1");
-
保存缓冲区输出文件:
fs.writeFileSync(outputFilePath, output);
如果不确定编码名称,可以testingencodingExists()
是否支持给定的编码:
> iconv.encodingExists("ISO-8859-1"); true
它为我工作:
var tempBuffer = new Buffer(response.body, 'iso-8859-1'); var iconv = new Iconv('ISO-8859-1', 'UTF-8'); var tempBuffer = iconv.convert(tempBuffer);
使用'iconv'模块https://github.com/bnoordhuis/node-iconv