将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,因此您需要执行以下步骤:

  1. 二进制模式打开input文件,所以JavaScript不会假定UTF-8也不尝试转换为其内部编码:

     var fs = require("fs"); var input = fs.readFileSync(inputFilePath, {encoding: "binary"}); 
  2. 从ISO-8859-1转换到缓冲区 :

     var iconv = require('iconv-lite'); var output = iconv.decode(input, "ISO-8859-1"); 
  3. 保存缓冲区输出文件:

     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