我正在尝试转换文本的编码,以获取原始文本。但是它只能从我创建的变量中返回正确的文本,而不能从另一个函数的变量中返回正确的文本。一个专业,当我尝试转换另一个文本(HakabaKitarō)时,出现错误:(node:5436) UnhandledPromiseRejectionWarning: Error: Illegal character sequence.
function iso_to_utf8 (text) {
console.log(`text orginal: ${text}`); //return text orginal: "Queen\u00c2\u0092s Blade OVA 2011"
body = new Buffer.from(text, "utf8");
conv = new Iconv("utf8//TRANSLIT//IGNORE", "ISO-8859-1");
body = conv.convert(body).toString();
console.log(body); //return Queen\u00c2\u0092s Blade OVA 2011
body = new Buffer.from("Queen\u00c2\u0092s Blade OVA 2011", "utf8");
conv = new Iconv("utf8//TRANSLIT//IGNORE", "ISO-8859-1");
body = conv.convert(body).toString();
console.log(body); //return Queens Blade OVA 2011
return body;
}
这是关于\ u00c2 \ u0092字符序列?转换为UTF-8时,这就是字节序列\ xc3 \ x82 \ xc2 \ x92。
// TRANSLIT将其正确复制为ISO-8859-1字节序列\ xc2 \ x92到输出缓冲区,.toString()然后将其解释为UTF-8并转换为U + 0092,这是您终端的控制字符可能会或可能不会显示。
(顺便说一下,U + 007F-U + 009F范围内的所有字符都是控制字符。]
这是所有预期的行为并按预期工作,因此我将继续进行此工作。通过bnoordhuis