在JavaScript中将Windows-1252十六进制值转换为Unicode

Dan*_*zyk 2 javascript unicode node.js

假设我有一个包含Windows-1252十六进制值的字符串,我想制作一个合适的Unicode字符:

const asciiHex = '85' //represents hellip
parseInt(asciiHex, 16) //I get 133 as expected
Run Code Online (Sandbox Code Playgroud)

String.fromCharCode现在不能执行此操作,因为它采用的是Unicode代码,而不是ASCII(在unicode中,hrip是8230(十进制))。有人知道任何简单的转换吗?

顺便说一句,我在节点6中这样做

rob*_*lep 5

您没有提到输入编码:哪个字符编码\x85映射到水平省略号?事实证明,这是Windows-1252,Node.js并未开箱即用。

可以对其进行编码/解码的模块是windows-1252

要将十六进制代码转换为UTF-8编码的字符串,请执行以下操作:

const windows1252 = require('windows-1252');

let asciiHex = '85';
let utf8text = windows1252.decode( Buffer.from(asciiHex, 'hex').toString('binary') );

console.log( utf8text ); // outputs: …
Run Code Online (Sandbox Code Playgroud)