Узел js разбирает иностранные символы

У меня есть скрипт 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;
}

Это работает для большинства строк, но когда дело доходит до иностранных букв, я не могу заставить его работать.

Например:

Следующие:

это строка, которую я хочу показать в окне console.log cmd.

Это в шестнадцатеричном виде следующее (по-видимому...):

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

И это выводит следующее в cmd:

Ù? Ù? Ú¯ سÙ? Ø§Ø ±

Как я могу заставить это работать так, чтобы это показало мне правильный вывод, который показан на изображении?

1 ответ

Это похоже на UTF-8 для меня см ссылку здесь

Один из способов - убежать от каждого персонажа \u следующее, console.log('\u00d9\u0087\u00D9');

В версии узла.12 есть эта опция

Есть также несколько действительно крутых модулей, которые делают это для вас, проверьте модуль utf8

//from docs
// → '\xA9' 

utf8.decode('\xF0\x90\x80\x81');
Другие вопросы по тегам