Вот это текст в UCS2:
004F0043005400410054004F004B002000380033002E0032003700200070002E0020003700200434043D043504390020043C04430437044B043A0438002E0020041104350437043B0438043C04380442043D043E002004380020043104350441043F043B04300442043D043E003A0020002A0036003200360023
Через онлайн конвертер все работает и текст переводится в нормальную кириллицу.
Ссылка тут.
Как мне в JS перекодировать UCS-2 в кириллицу?
Это строка UCS-2 в шестнадцатеричной записи. В UCS-2 каждая «буква» (code point) кодируется двумя байтами, т.е. в этой строке каждые четыре символа это одна буква. Например 004F
это латинская большая «O», а 0434
это русская буква «д».
Значит нужно просто разбить эту строку на четвёрки и преобразовать их в буквы. Например так:
const s = '004F0043005400410054004F004B....';
let result = '';
for (let k = 0; k < s.length; k += 4) {
// берём очередные 4 символа
let hexcode = s.slice(k, k + 4);
// Преобразуем в число из 16-чного представления
let code = parseInt(hexcode, 16);
// Получаем букву по номеру в Unicode
result += String.fromCharCode(code);
}
А если вспомнить, что в JS есть старая добрая функция unescape
, то всё это можно записать одной строчкой (не рекомендую так делать):
const s = '004F0043005400410054004F004B....';
let result = unescape(s.replace(/(....)/g, '%u$1'));
Разбор работы второго варианта оставляю в качестве домашнего задания.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть ли в реакт аналогaddEventListener()? Задача следующая: есть форма, в форме - инпуты
есть карусель на Slick появилась идея при просмотре последнего слайда сделать переход на определённую страницу попробовал такой вариант
ЗдравствуйтеВстречаю два различных типа файлов JSON в различной литературе по этому формату