Воскресенье
17-11-2024
20:56
Главная страница
Каталог статей
Информист Приветствую Вас Гость | RSS
Регистрация
Вход
Меню сайта

Категории каталога
YUI - Yahoo! User Interface [1]
Решение проблем, связанных с библиотекой web-интерфейса от Yahho
Web интерфейсы [18]
советы по оформлению web страниц
Протоколы [1]
MVC Visual Studio [1]

Наш опрос
Что Вы веберете
Всего ответов: 230

Копилка
Если вам понравился наш сайт или вы нашли полезную информацию, то у вас есть возможность отблагодарить администрацию.

Начало » Статьи » Web » Web интерфейсы

Сравнение JavaScript методов escape(), encodeURI(), и encodeURIComponent()

Метод escape()

Определен в JavaScript 1.0

Описание:

[1] MSDN JScript Reference

Метод escape() возвращает строку (в формате Unicode) . Все пробелы, пунктуация и любые не-ASCII символы в ней закодированы и выглядят как %xx, где xx эквивалентно шестнадцатиричному числу, обозначающему символ. Например, пробелы будут возвращены как "%20".

Символы, числовые значения которых больше 255 будут представлены в формате %uxxxx.

Netscape DevEdge Core Javascript Guide

Функции escape и unescape дают возможность кодировать и декодировать строки. Функция escape возвращает шестнадцатиричное представление аргумента в кодировке ISO Latin. Функция unescape возвращает ASCII строку из шестнадцатиричной кодировки символов.

Пример:

Чтобы понять поведение метода - надо дать ему строку символов и посмотреть на то, что он вернет:

escape('!@#$%^&*(){}[]=:/;?+\'"'):

Метод encodeURI()

Определен в JavaScript 1.5

Описание:

[2] MSDN JScript Reference

Метод encodeURI() возвращает закодированный URI. Если к результату применить метод decodeURI, будет возвращена исходная строка. Метод encodeURI() не кодирует следущие символы: ":", "/", ";" и "?".

Для того, чтобы закодировать эти символы, следует использовать encodeURIComponent.

Netscape DevEdge Core Javascript Guide

Кодирует Uniform Resource Identifier (URI), замещая некоторые символы escape-последовательностями, представляющими эти символы в кодировке UTF-8.

Пример:

Чтобы понять поведение метода - надо дать ему строку символов и посмотреть на то, что он вернет:

encodeURI('!@#$%^&*(){}[]=:/;?+\'"'):

Метод encodeURIComponent()

Определен в JavaScript 1.5

Описание:

[3] MSDN JScript Reference

Метод encodeURIComponent() возвращает закодированный URI. Если к результату применить метод decodeURIComponent, будет возвращена исходная строка. Метод encodeURIComponent кодирует все символы, поэтому будьте внимательны, если строка представляет путь к файлу: /folder1/folder2/default.html. Слэши будут закодированы и не пригодны к отправке веб-серверу в качестве запроса. Следует использовать метод encodeURI если строка содержит более одного компонента URI.

Netscape DevEdge Core Javascript Guide

Кодирует компоненты Uniform Resource Identifier (URI), замещая некоторые символы escape-последовательностями, представляющими эти символы в кодировке UTF-8.

Пример:

Чтобы понять поведение метода - надо дать ему строку символов и посмотреть на то, что он вернет:

encodeURIComponent('!@#$%^&*(){}[]=:/;?+\'"'):

Три метода вместе:

escape():

encodeURI():

encodeURIComponent():

Подводя итог

Что и в каком случае использовать?

Метод escape() не кодирует символ "+", который может быть принят как пробел на стороне сервера и его можно использовать для передачи пробелов в полях форм. Соответственно, чтобы обойти этот дефект, лучше не использовать escape() когда это возможно. В качестве альтернативы лучше использовать encodeURIComponent().

escape() не кодирует символы: @*/+.

Использование метода encodeURI() лучше чем escape() приспособлено для кодирования всего URI, а не запроса, являющегося частью URL. Этот метод следует использовать в случае, когда надо закодировать URI полностью для отправки запроса веб-серверу, при этом некоторые символы не нужно кодировать.

encodeURI() не кодирует символы: !@#$&*()=:/;?+'.

Метод encodeURIComponent() лучше использовать для кодирования отдельных частей (компонентов) URI. Им кодируются все символы, которые могут являться спецсимволами URI, например, символ слэша "/".

encodeURIComponent() не кодирует символы: !*()'.

Ссылки

Оригинал статьи - [4] Comparing escape(), encodeURI(), and encodeURIComponent()

MSDN JScript Reference - [5] escape(), [6] encodeURI(), [7] encodeURIComponent()

ASCII Table - [8] http://www.asciitable.com/

W3C's URIs, URLs, and URNs: Clarifications and Recommendations 1.0 - [9] http://www.w3.org/TR/uri-clarification/


Article printed from XHTML.RU: http://xhtml.ru

URL to article: http://xhtml.ru/2006/05/25/encodestring/

URLs in this post:
[1] MSDN JScript Reference: http://msdn.microsoft.com/library/en-us/script56/html/js56jsmthescape.asp
[2] MSDN JScript Reference: http://msdn.microsoft.com/library/en-us/script56/html/js56jsmthfencodeuri.asp
[3] MSDN JScript Reference: http://msdn.microsoft.com/library/en-us/script56/html/js56jsmthencodeuricomponent.asp
[4] Comparing escape(), encodeURI(), and encodeURIComponent(): http://xkr.us/articles/javascript/encode-compare/
[5] escape(): http://msdn.microsoft.com/library/en-us/script56/html/js56jsmthescape.asp
[6] encodeURI(): http://msdn.microsoft.com/library/en-us/script56/html/js56jsmthfencodeuri.asp
[7] encodeURIComponent(): http://msdn.microsoft.com/library/en-us/script56/html/js56jsmthencodeuricomponent.asp
[8] http://www.asciitable.com/: http://www.asciitable.com/
[9] http://www.w3.org/TR/uri-clarification/: http://www.w3.org/TR/uri-clarification/

Click here to print.



Источник: http://xhtml.ru/2006/05/25/encodestring/print
Категория: Web интерфейсы | Добавил: Judge (02-08-2009) | Автор: Баранов Андрей
Просмотров: 1914 | Рейтинг: 5.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск по каталогу
Яндекс


Поиск по Информисту

Наша кнопка


Друзья сайта

Статистика


Copyright MyCorp © 2006Сайт создан в системе uCoz