将iso-8859-1转换为utf-8 javascript

时间:2014-11-26 17:29:48

标签: javascript node.js

我尝试解析“iso-8859-1”页面并使用utf-8保存到我的数据库, 这是我的代码:

var buffer = iconv.encode(data, "iso-8859-1");
data = iconv.decode(buffer, 'utf8');

它不起作用。所有符号如å或ä都会转换为�

如何保存这些符号?

2 个答案:

答案 0 :(得分:19)

您需要第三方库来执行该任务。您正在使用iconv-lite,因此您需要按照以下步骤操作:

  1. 二进制模式打开输入文件,因此JavaScript不会假设为UTF-8,也不会尝试转换为其内部编码:

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

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

    fs.writeFileSync(outputFilePath, output);
    
  4. 如果不确定编码名称,您可以测试encodingExists()是否支持给定编码:

    > iconv.encodingExists("ISO-8859-1");
    true
    

答案 1 :(得分:0)

这对我有用:

def do_stuff(amount: int, name: str, place: str = 'London') -> list:

使用'iconv'模块https://github.com/bnoordhuis/node-iconv