Вы должны использовать строковые литералы. Здесь вы используете html-объекты. Но его можно интерпретировать только внутри html. Javascript будет просто печатать текст как есть.
Вместо этого вы должны использовать литералы в формате unicode. Литерал unicode будет интерпретироваться парсером строки javascript, поскольку он понимает, что символ не ascii.
Код гольца: 28779 -> шестнадцатеричного -> 706B -> к буквальному -> \ u706b
Так что ваша строка стала (обратите внимание на последнюю строку с кириллицей как 0 обивки спереди):
[
"\u706B\u5F71\u5FCD\u8005",
"\u2015\u30CA\u30EB\u30C8\u2015",
"\u041D\u0430\u0440\u0443\u0442\u043E"
]
Но на самом деле зачем это делать? Вместо этого вы можете просто вывести строку непосредственно в utf-8, как если бы ваш файл был правильно сохранен в utf-8.
[
"火影忍者",
"―ナルト―",
"Наруто"
]
Это просто работает.
Я получаю эти массивы из xhr, все исходные и скомпилированные js и html-файлы имеют utf-8. Я даже поставил этот массив в '', но все равно не работает, попробуем сегодня днем систему декодирования, которую вы предлагаете –