node js解析外来字符

时间:2015-04-06 21:03:25

标签: node.js character translate

我有一个节点js脚本,它从服务器获取一些数据并得到可读字符串。

我用来将十六进制转换为字符串的函数如下:

function hex2a(hexx) {
    var hex = hexx.toString();//force conversion
    var str = '';
    for (var i = 0; i < hex.length; i += 2)
        str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));

    return str;
}

这适用于大多数字符串,但是当涉及外国字母时,我无法使其工作。

例如:

以下内容: enter image description here

是我想在console.log cmd窗口中显示的字符串。

以十六进制表示如下(显然......):

  

D9 87 D9 86 DA AF 20 D8 B3 D9 88 D8 A7 D8 B1 5B

这就是在cmd中输出以下内容:

  

Ù?Ù?دسÙ?ار

如何让它工作,以便向我显示图像中显示的正确输出?

1 个答案:

答案 0 :(得分:0)

对我来说,这似乎是UTF-8 see reference here

一种方法是使用\u转义每个字符,如下所示console.log('\u00d9\u0087\u00D9');

在节点版本.12中this option

还有一些非常酷的模块可以帮到你,请查看the utf8 module

//from docs
// → '\xA9' 

utf8.decode('\xF0\x90\x80\x81');