Узел 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');