Задать вопрос
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

Как декодировать escape строку?

Есть строка "привет", я так понимаю в кодировке windows 1251:

%EF%F0%E8%E2%E5%F2

Получаю:

Uncaught URIError: URI malformed

Проблема в том, что decodeURI( ) принимает utf-8.
Как реализовать?
  • Вопрос задан
  • 538 просмотров
Подписаться 2 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
Решения вопроса 1
@Aves
Вообще, конечно, странно, что браузеры, способные отобразить страницу в большинстве кодировок, в том числе и data:text/plain;charset=cp1251,%EF%F0%E8%E2%E5%F2 не дают использовать свои возможности в javascript. У FileReader есть метод readAsText, принимающий в качестве второго параметра кодировку, но каким должен быть читаемый Blob, я так и не разобрался.

Если нет желания использовать библиотеки, можно раскодировать в лоб
var cp1251 = 'ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·\
ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя';
var str = '%EF%F0%E8%E2%E5%F2'.replace(/%(..)/g, function(s, p) {
    p = parseInt(p, 16);
    return p < 128 ? String.fromCharCode(p) : cp1251[p - 128];
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы