аукцион / donate / услуги / RSS / распечатать / вход 
Мой мир
Вконтакте
Одноклассники

[2 декабря 2011 | 3 декабря 2011 | 5 декабря 2011]

Проблема с кодировкой в XMLHttpRequest, Microsoft.XMLHTTP и Msxml2.XMLHTTP

В последнее время часто встречаюсь с запросами о том, что возникают проблемы при работе с XMLHttpRequest. Точнее с кодировкой подключаемых файлов. Когда пытаешься подключить файл с кириллицей, то выводится всякий мусор вместо нормального текста. Я сам столкнулся с подобной ситуацией, но решил проблему на автомате не задумываясь о том, что кто-то с ней столкнётся и будет долго решать этот вопрос.

Суть проблемы заключается в том, что сервера отдают текстовые файлы и проставляют charset utf-8 (Unicode, worldwide), а на принимающей стороне может быть выставлена кодировка windows-1251, после перекодировки получится мусор, а не текст. Иногда сервера отдают в какой-нибудь экзотической кодировке, типа koi-8r.

Решение проблемы с кодировкой включаемых файлов очень простое. Достаточно отредактировать MIME-типы отдаваемых файлов. Если вы везде используете windows-1251, то его и укажите. Но в планах на будущее, я бы рекомендовал все сайты создавать и хранить в utf-8. Этот подход позволит избавиться от массы проблем с кодировками в будущем.

Альтернативное решение проблемы. В моём случае всё было значительно проще. Так как нужные мне данные генерируются скриптом на ASP, то я банально подставил свой собственный тип кодовой страницы.

Response.ContentType = "text/html; charset=windows-1251"

После этого была решена проблема некорректной кодировки символов во включаемом файе. Так, что если у вас возникла аналогичная проблема с кодировками, то приведённое выше решение вам должно помочь. Если интересуют подробности или возникли вопросы, то спрашивайте, с охотой отвечу.

Тэги: программирование

Отредактировано:2020-09-28 08:27:15


Этот сайт использует файлы cookies, чтобы упростить вашу навигацию по сайту, предлагать только интересную информацию и упростить заполнение форм. Я предполагаю, что, если вы продолжаете использовать мой сайт, то вы согласны с использованием мной файлов cookies. Вы в любое время можете удалить и/или запретить их использование изменив настройки своего интернет-браузера.

Сообщайте мне о замеченных ошибках на: web@orcinus.ru. Все пожелания и советы будут учтены при дальнейшем проектировании сайта. Я готов сотрудничать со всеми желающими. В некоторых случаях, мнение автора может не совпадать с мнением автора! Phone: +7-902-924-70-49.

Top.Mail.Ru
Top.Mail.Ru LiveInternet Rambler's Top100 Яндекс.Метрика