Existem várias maneiras de codificar strings de URL em javascript: escape (), codeuri () e codeuricomponent (). Os papéis dessas codificações variam.
Método Escape ():
A sequência especificada é codificada usando o conjunto de caracteres latinos ISO. Todos os caracteres espaciais, marcas de pontuação, caracteres especiais e outros caracteres não-ASCII serão convertidos em codificação de caracteres de formato xx %(xx é igual ao número hexadecimal codificado na tabela de conjuntos de caracteres). Por exemplo, a codificação correspondente do caractere espacial é %20.
Personagens que não serão codificados por este método: @ * / +
Método Encodeuri ():
Converta seqüências de URI em seqüências de escape no formato de codificação UTF-8.
Personagens que não serão codificados por este método:! @ # $ & * () =: /; ? + '
método codeuricomponent ():
Converta seqüências de URI em seqüências de escape no formato de codificação UTF-8. Comparado ao codeuri (), esse método codificará mais caracteres, como / etc. Portanto, se a sequência contiver várias partes do URI, esse método não poderá ser usado para codificá -lo, caso contrário, o URL exibirá um erro após a codificação do / / personagem.
Personagens que não serão codificados por este método:! * () '
Portanto, para seqüências de caracteres chinesas, se você não deseja converter o formato de codificação da string em formato UTF-8 (por exemplo, quando o charset da página original e a página de destino são os mesmos), você só precisa usar o Escape. Se a sua página for GB2312 ou outra codificação, e a página que aceita parâmetros é a codificação UTF-8, você deverá usar o Codeuri ou o Encodeuricomponent.
Além disso, o Codeuri/Encodeuricomponent foi introduzido após o JavaScript 1.5, enquanto o Escape estava disponível na versão JavaScript 1.0.