В JavaScript есть три функции, которые могут кодировать строки, а именно: Escape, Encodeuri, Encodeuri и Encodeuricomponent. Соответствующие три функции декодирования: Unessape, Decodeuri и Decodeuricomponent.
Вот краткое введение в их различия:
1 функция Escape ()
Определение и использование
Функция Escape () кодирует строку так, чтобы строку можно было прочитать на всех компьютерах.
грамматика
побег (строка)
Описание параметра
Строка требуется. Строка, которая должна быть сбежал или закодирована.
Возвращаемое значение
Копия кодированной строки. Некоторые из этих персонажей заменяются шестнадцатилетними последовательностями побега.
иллюстрировать
Этот метод не кодирует буквы и цифры ASCII, а также следующие знаки препинания ASCII: - _. ! ~ * '(). Все остальные символы будут заменены сбежавшими последовательностями.
2 функция encodeuri ()
Определение и использование
Функция encodeuri () может кодировать строки как URI.
грамматика
Encodeuri (Uristring)
Описание параметра
Требуется рассеяние. Строка, содержащая URI или другой текст, который должен быть закодирован.
Возвращаемое значение
Копия рассеяния, некоторые из которых заменяются шестнадцатеричной последовательности побега.
иллюстрировать
Этот метод не кодирует буквы и цифры ASCII, и он не кодирует эти знаки препинания ASCII: - _. ! ~ * '().
Цель этого метода состоит в том, чтобы полностью кодировать URI, поэтому функция encodeuri () не избежит следующих знаков препинания ASCII с особым значением в URI :;/?:@& =+$,#
3 encodeuricomponent () функция
Определение и использование
Функция encodeuricomponent () может кодировать строки как компоненты URI.
грамматика
Encodeuricomponent (Uristring)
Описание параметра
Требуется рассеяние. Строка, содержащая компонент URI или другой текст, который будет кодировать.
Возвращаемое значение
Копия рассеяния, некоторые из которых заменяются шестнадцатеричной последовательности побега.
иллюстрировать
Этот метод не кодирует буквы и цифры ASCII, и он не кодирует эти знаки препинания ASCII: - _. ! ~ * '().
Другие символы (такие как :;/?:@& =+$,# Эти знаки препинания, используемые для разделения компонентов URI), заменяются одной или несколькими шестнадцатеричными последовательностями побега.
Советы и комментарии
Совет: обратите внимание на разницу между функцией encodeuricomponent () и функцией encodeuri (). Первый предполагает, что его параметры являются частью URI (например, протокол, имя хоста, путь или строка запроса). Следовательно, функция encodeuricomponent () выкидывает знаки препинания, используемые для разделения отдельных частей URI.
4 Резюме:
Благодаря анализу трех функций мы можем знать, что Escape () избегает всех пройденных строк, кроме букв ASCII, чисел и конкретных символов. Поэтому, если вы хотите кодировать URL, лучше не использовать этот метод. Encodeuri () используется для кодирования всего URI, потому что ни один из законных символов в URI не будет кодирована и преобразована. Метод Encodeuricomponent должен использоваться наиболее часто используемым при кодировании одного Uromponent (ссылка на параметр запроса). Он может избежать китайских и специальных символов в параметрах, не влияя на весь URL.
5 примеров:
1 побег ()
<script type = "text/javascript"> document.write (ascop ("http://www.w3school.com.cn/") + "<br/>") document.write (ascaver ("?! = ()#%&")) </script>Выход:
http%3a // www.w3school.com.cn%3f%21%3D%28%29%23%25%26
2 encodeuri ()
<script type = "text/javascript"> document.write (encodeuri ("http://www.w3school.com.cn/")+ "<br />") document.write(encodeuri("http://www.w3school.com.cn/my first/")) document.write (encodeuri (",/?:@& =+$#")) </script>Выход:
http://www.w3school.com.cn/http://www.w3school.com.cn/my%20first/,/?:@&=+$#
Весь URL -адрес кодируется, а конкретный идентификатор URL не транкодируется.
3 Encodeuricomponent ()
Пример 1:
<script type = "text/javascript"> document.write (encodeuricomponent ("http://www.w3school.com.cn/")) документ. /> ") document.write (encodeuricomponent (",/?:@& =+$#")) </script>Выход:
http%3a%2f%2fwww.w3school.com.cnhttp%3a%2f%2fwww.w3school.com.cn%2fp%201%2f%2c%2f%3f%3a%40%26%3d%2b%24%23
Пример 2:
<script language = "javascript"> document.write ('<a href = "http://passport.baidu.com/?logout&aid=7&u='+encodeuricomponent (" rel = "nofollow" http://cang.baidu.com/bruce42")+'"> </a>');Кодируйте параметры в URL, поскольку параметры также являются URL, если не кодируются, это повлияет на прыжок всего URL.