Издревле встроенная функция escape() применяется для перекодирования строк таким образом, чтобы они могли быть прочтены на любом компьютере. Всё бы замечательно, но тут возникает проблема. Связана она с тем, что разные браузеры по-разному кодируют строки, в которых попадаются non-ASCII символы. Издревле встроенная функция Всё бы замечательно, но тут возникает проблема. Связана она с тем, что разные браузеры по-разному кодируют строки, в которых попадаются non-ASCII символы. Internet Explorer 4+, например, переводит русские буквы в UNICODE формат (%uxxxx), тогда как все остальные браузеры используют для этого обычный формат — %xx. В результате получается так, что результирующая строка может быть некорректно распознана. Наглядный пример: Что будет, если перевести слово результат в escape-последовательность (функция Окей, во всех браузерах всё работает нормально. А теперь возьмём перекодированную строку из NN4.x или Opera (т. е. без UNICODE) — строку, кстати, можно взять и из GET-запроса (она будет одинакова для всех браузеров, никаких тебе %uxxxx, а только %xx) — и попробуем преобразовать её обратно с помощью IE4+. Получаем следующую абракадабру. В других браузерах перекодировка произойдёт нормально. Вечно Miscrosoft хочет как лучше, а получается как всегда… P. S. Решение. Хитовые статьи про разработку сайтов
Рассылка новостей и новых статей
Сообщения будут приходить пару раз в неделю, не чаще
Объявления |
Об авторе заметок
Примите участие
Некоторые мои проектыОбъявления |
© Александр Шуркаев, 2001–2025. Условия копирования и как стать автором. Если что, пишите на alshur@ya.ru. Осторожно, теги закрываются! |
|