Existem três funções no JavaScript que podem codificar strings, a saber: escapar, codeuri, codeuri e codeuricomponent. As três funções de decodificação correspondentes: UNESCAPE, DECODEURI e DECODOURICOMPONS.
Aqui está uma breve introdução às suas diferenças:
1 função escape ()
Definição e uso
A função Escape () codifica uma sequência para que a string possa ser lida em todos os computadores.
gramática
Escape (string)
Descrição do parâmetro
string necessária. A string a ser escapada ou codificada.
Valor de retorno
Uma cópia da string codificada. Alguns desses personagens são substituídos por sequências de fuga hexadecimais.
ilustrar
Este método não codifica letras e números ASCII, nem as seguintes marcas de pontuação ASCII: - _. ! ~ * '(). Todos os outros caracteres serão substituídos por sequências escapadas.
2 função codeuri ()
Definição e uso
A função codeuri () pode codificar strings como URIs.
gramática
Encodeuri (URISTRING)
Descrição do parâmetro
Uristring necessário. Uma string contendo um URI ou outro texto a ser codificado.
Valor de retorno
Uma cópia do URISTRING, alguns dos quais são substituídos por uma sequência de fuga hexadecimal.
ilustrar
Este método não codifica letras e números ASCII, nem codifica essas marcas de pontuação ASCII: - _. ! ~ * '().
O objetivo deste método é codificar totalmente o URI, para que a função Encodeuri () não escape dos seguintes marcos de pontuação ASCII com significado especial no URI:;/?:@& =+$,#
3 função codeuricomponent ()
Definição e uso
A função codeuricomponent () pode codificar strings como componentes URI.
gramática
Encodeuricomponent (URISTRING)
Descrição do parâmetro
Uristring necessário. Uma sequência que contém um componente URI ou outro texto a ser codificado.
Valor de retorno
Uma cópia do URISTRING, alguns dos quais são substituídos por uma sequência de fuga hexadecimal.
ilustrar
Este método não codifica letras e números ASCII, nem codifica essas marcas de pontuação ASCII: - _. ! ~ * '().
Outros caracteres (como:;/?:@& =+$,# essas marcas de pontuação usadas para separar componentes URI) são substituídas por uma ou mais sequências de escape hexadecimais.
Dicas e comentários
Dica: observe a diferença entre a função codeuricomponent () e a função codeuri (). O primeiro assume que seus parâmetros fazem parte do URI (como protocolo, nome de host, caminho ou string de consulta). Portanto, a função codeuricomponent () escapará das marcas de pontuação usadas para separar as partes individuais do URI.
4 Resumo:
Através da análise das três funções, podemos saber que Escape () escapa todas as cordas passadas, exceto letras ASCII, números e símbolos específicos. Portanto, se você deseja codificar o URL, é melhor não usar esse método. O codeuri () é usado para codificar todo o URI, porque nenhum dos caracteres legais do URI será codificado e convertido. O método codeuricomponent deve ser o mais comumente usado ao codificar um único uricomponente (referindo -se ao parâmetro de solicitação). Pode escapar de caracteres chineses e especiais nos parâmetros sem afetar todo o URL.
5 exemplos:
1 Escape ()
<script type = "text/javascript"> document.write (escape ("http://www.w3school.com.cn/") + "<r/>") document.write (escape ("?! = ()#%&") </script>Saída:
http%3a // www.w3school.com.cn%3f%21%3d%28%29%23%25%26
2 Encodeuri ()
<script type = "text/javascript"> document.write (codeuri ("http://www.w3school.com.cn/")+ "<r />")document.write(encodeuri("http://www.w3school.com.codeuri("http://www.w3school.com.c/my primeiro/")) document.write (codeuri (",/?:@& =+$#")) </sCript>Saída:
http://www.w3school.com.cn/http://www.w3school.com.cn/my%20first/,/?:@&=+$#
Todo o URL é codificado e o identificador específico do URL não é transcodificado.
3 Encodeuricomponent ()
Exemplo 1:
<script type = "text/javascript"> document.write (codeuricomponent ("http://www.w3school.com.cn/")) /> ") document.write (codeuricomponent (",/?:@& =+$#")) </sCript>Saída:
http%3a%2f%2fwww.w3school.com.cnhttp%3a%2f%2fwww.w3school.com.cn%2fp%201%2F%2C%2F%3F%3A%40%26%3d 2b 2B 24%23
Exemplo 2:
<Script Language = "javascript"> document.write ('<a href = "http://passport.baidu.com/?logout&aid=7&u='+Encodeuricomponent (" rel = "Nofollow" http://cang.baidu.com/bruce42-i.Codifique os parâmetros no URL, porque os parâmetros também são um URL, se não codificado, afetará o salto de todo o URL.