在Node.js中从Windows-1251转换到UTF-8
Converting from Windows-1251 to UTF-8 in Node.js
我需要将一个字符串从Windows-1251转换为UTF-8。
我试着用iconv这样做,但我得到的只是这样的东西:
пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
var iconv = new Iconv('windows-1251', 'utf-8')
title = iconv.convert(title).toString('utf-8')
这是你的问题的有效解决方案。您必须先使用Buffer并将字符串转换为二进制。
const Iconv = require('iconv').Iconv;
request({
uri: website_url,
method: 'GET',
encoding: 'binary'
}, function (error, response, body) {
const body = new Buffer(body, 'binary');
conv = Iconv('windows-1251', 'utf8');
body = conv.convert(body).toString();
});
如果你从文件中读取,你可以这样写:
const iconv = require('iconv-lite');
const fs = require("fs");
fs.readFile("filename.xml", null, (err, data) => {
if(err) {
console.log(err)
return
}
const encodedData = iconv.encode(iconv.decode(data, 'win1251'), 'utf8')
fs.writeFile("result_filename.xml", encodedData, () => { })
})
我使用Node版本16,下面的代码可以正常工作。您不需要使用Buffer节点将写入警告。您需要先安装iconv
包。
fs = require('fs')
fs.readFile('printed_document.txt', function (err,data) {
if (err) {
return console.log(err);
}
console.log(require('iconv').Iconv('windows-1251', 'utf-8').convert(data).toString())
})
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- JavaScript ascii 到 utf-8 的转换问题与负数
- 在 JavaScript 中将 UTF-8 字符串转换为 Windows-1250
- 将 iso-8859-1 转换为 utf-8 JavaScript
- Javascript表单缩短-UTF-8转换编码
- 在Node.js中从Windows-1251转换到UTF-8
- Javascript将数字转换为utf-8
- 如何在javascript中将utf-8字符串转换为unlencoded win1251
- 将字符串转换为UTF-16(以及更多格式化)
- Javascript将字符串从GBK转换为utf-8
- Node.js将字符串从ISO-8859-2转换为UTF-8
- 将UTF-8数据转换为适当的字符串格式
- 如何将此字符串转换为普通的utf-8字符串?
- 在Java中将ANSI转换为UTF-8
- 使用JavaScript (UTF-8)将隐式字符串转换为可读字符串
- Javascript将文本从希腊语转换为UTF-8
- 如何在JavaScript中将DOM节点文本值转换为UTF-8
- utf 8 - JavaScript 中的 UTF-16 到 UTF-8 转换
- 我们可以用javascript将ANSI编码的CSV文件转换为utf-8编码的文件
- 将ISO-8859-1转换为UTF-8