Читайте также: |
|
Если URL-адрес состоит из обычных латинских букв (английского алфавита), символа подчеркивания и цифр, а в его компонентах отсутствуют пробелы и специальные символы синтаксиса (:, /, @,? и #), то никаких проблем не возникает. Небольшие хлопоты появляются при наличии в компонентах URL пробелов, кириллицы, иероглифов и других специфических символов, а также некоторых знаков препинания. Например, кириллица и знаки препинания могут понадобиться в компонентах URL, представляющих передаваемые данные и якорь внутренней ссылки. В таких случаях необходимо кодировать URL, т. е. заменять недопустимые символы кодами.
При непосредственном написании элементов URL-адреса используется ограниченное подмножество символов из базового набора ASCII (коды от 0 до 127): латинские буквы, цифры и некоторые знаки препинания. При необходимости употребить недопустимые символы из базового набора, а также ASCII-символы с кодами от 128 до 255 (например, буквы кириллицы, пробелы и др.) применяют специальное кодирование двумя шестнадцатеричными цифрами, перед которыми указывают символ %, т. е. в виде %хх.
Вот несколько примеров:
%20 - символ пробела;
%3F -? (знак вопроса);
%21-! (восклицательный знак);
%26 - & (амперсанд);
%40- @ ("собака");
%E0 - буква а (кириллица);
%e1- буква б (кириллица).
Например, строка "Documents and Settings" с двумя недопустимыми символами пробела в кодированном виде будет выглядеть как Documents%20and%20settings.
Если требуются символы, выходящие за рамки набора ASCII, то их представляют в виде %uхххх, где хххх - четырехзначный шестнадцатеричный код в системе Unicode, или же в виде двух кодов %хх. Например, слово "Привет" в указанных двух кодировках будет выглядеть так:
%u041F%u0440%u0438%u0432%u0435%u0442
%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82
Для кодирования URL-адреса следует обратиться к справочнику. Вместе с тем кодирование можно выполнить и с помощью специальных методов (встроенных функций) JavaScript: escape(), encodeUri() или encodeUriComponent(). Перечисленные методы в качестве параметра (значения, указанного в круглых скобках) принимают строку, а возвращают ее кодированное значение. Однако выполняют это они по-разному.
На рисунке показано их применение к строке
http://Moй сервер/ mypage.htn#Глава 1
в которой недопустимыми являются символы пробела и кириллицы. Скрипт в (Х)НТМL-документе выводит в окно браузера исходную строку и результаты ее кодирования различными методами.
В примере только применение метода encodeUri() дало результат, пригодный для представления URL. Другие методы закодировали символы, разделяющие компоненты URL (:, / и #), и тем самым сделали всю строку непригодной для подачи запроса на сервер.
Дата добавления: 2015-09-11; просмотров: 24 | Поможем написать вашу работу | Нарушение авторских прав |