在JavaScript

时间:2017-09-07 11:34:36

标签: javascript node.js unicode

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

const asciiHex = '85' //represents hellip
parseInt(asciiHex, 16) //I get 133 as expected

我现在不能String.fromCharCode,因为这需要使用Unicode代码,而不是ASCII(在unicode hellip中是8230(十进制))。有人知道任何简单的转换吗?

btw我在节点6

中这样做

1 个答案:

答案 0 :(得分:4)

您没有提及输入编码:哪个字符编码\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: …