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

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

есть строка "привет", я так понимаю в кодировке windows 1251
%EF%F0%E8%E2%E5%F2
получаю:
Uncaught URIError: URI malformed

проблема в том что decodeURI( ) принимает utf-8
помогите, как реализовать?
  • Вопрос задан
  • 531 просмотр
Решения вопроса 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];
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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