[英]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 ,因此您需要按照以下步驟操作:
以二進制模式打開輸入文件,因此 JavaScript 不會假定 UTF-8 也不會嘗試轉換為其內部編碼:
var fs = require("fs"); var input = fs.readFileSync(inputFilePath, {encoding: "binary"});
從 ISO-8859-1 轉換為Buffer :
var iconv = require('iconv-lite'); var output = iconv.decode(input, "ISO-8859-1");
將緩沖區保存到輸出文件:
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.