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

标签 javascript node.js

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

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

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

如何保存这些符号?

最佳答案

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

  1. binary 模式打开输入文件,因此 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);
    

如果不确定编码名称,您可以使用 encodingExists() 测试给定的编码是否支持:

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

关于javascript - 将 iso-8859-1 转换为 utf-8 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27155419/

相关文章:

javascript - Ajax 发送 get 到原始页面而不是 post 到不同的页面

javascript - 如何修复 IE6 中的 png 图片问题?

node.js - 在 ReactJS 上使用 GET 调用下载文件

node.js - 如何在 Node.js 中验证来自 QLDB 的文档?

node.js - 如何使用 websockets 制作一个 crud 应用程序?

javascript - ReactJS部署应用程序错误无法复制到剪贴板: Command failed: xsel --clipboard --input

javascript - TypeScript 函数式编程模式是否能实现舒适的对象构造?

javascript - 如何在未设置大小的情况下获取具有多个属性集的 HTML 选择标记的可见选项数?

javascript - Html 中的原生日期选择器

javascript - Sequelize - 检查数组中是否有任何字符串包含字符串