В процессе освоения крайне простой, но тем не менее крайне глючной и некомпетентно написанной несерьезной библиотеки комментариев ajax Модуль общих комментариев Ajax , я столкнулся с интересным и не очевидным для меня эффектом.
Комментарии некоторых пользователей на моем сайте отображались корректно, а комментарии других отображались в виде хабразябра.
Кодировка сайта по умолчанию — utf-8. Но сообщения некоторых пользователей появились в cp1251. Я пытался воспроизвести ошибку, но не смог сделать это ни в одном из браузеров, установленных в моей системе.
(Установился Linux Debian — это была моя ошибка.
Браузеры: Opera 9, FireFox, Konqueror.) Не протестировав либу только в одном из известных браузеров, я понял, что мои худшие опасения сбываются.
Запустил Internet Explorer 6.0 и - эврика.
(Есть способ запустить Internet Explorer в Linux — IEs4Linux ) Примечание.
Все нелатинские символы, включенные в URI, должны быть закодированы в UTF-8. Те.
URI, для которого будет сделан запрос, должен выглядеть так: saveComment.phpЭcommentText=%DD%FF%AA. В результате я пришел к выводу, что все популярные браузеры, за исключением Internet Explorer, автоматически кодируют запрошенный url в utf-8. В случае с ослом используйте функцию javascript::encodeURI(url) непосредственно перед вызовом XMLHttpRequest.open().
В общем, лучше всегда его использовать.
:) О других функциях конвертации в Юникод можно прочитать Здесь .
Теги: #JavaScript #URI #URI #utf #Чулан
-
Youtube – Видеореклама Google Adwords
19 Oct, 24