簡體   English   中英

將 iso-8859-1 轉換為 utf-8 javascript

[英]Convert iso-8859-1 to utf-8 javascript

我嘗試解析“iso-8859-1”頁面並使用 utf-8 保存到我的數據庫中,這是我的代碼:

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

它不起作用。 å 或 ä 等所有符號都轉換為 �

如何保存這些符號?

您需要一個第三方庫來完成該任務。 您正在使用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);

如果不確定編碼名稱,您可以使用encodingExists()測試給定的編碼是否支持:

> 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

您現在可以使用 Web 標准TextDecoder解碼字符串(也適用於 node 和 deno):

const { readFile } from 'fs'
const encoded = await readFile(inputFilePath)
const decoded = new TextDecoder('windows-1252').decode(encoded)

請注意windows-1252等同於ISO-8859-1更多信息,請查看https://developer.mozilla.org/en-US/docs/Web/API/Encoding_API/Encodings

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM