Pergunta

Quais são as razões por trás URLEncodedFormat() escapar caracteres de URL válidos?

caracteres válidos:

- _ . ! ~ * " ( )

O CF8 Doc disse: "[URLEncodedFormat() escapes] caracteres não alfanuméricos com sequências de escape hexadecimal equivalentes ". No entanto, por escapar caracteres de URL válidos?

Foi útil?

Solução

Eles são válidos, mas parece bastante normal para mim que, se você perguntar a uma linguagem de programação para url codificar uma string que ele converte todos os caracteres numéricos não alfa para o equivalente hexadecimal.

Server.URLEncode da ASP () faz o mesmo e php urlencode () não muito exceto para - e _. Além disso, no JavaScript, a função encodeURIComponent () irá codificar todas caracteres alfa numéricos para não equivalentes hexadecimais.

Esta é uma boa idéia de qualquer maneira para codificar todos os caracteres não alfa numéricos ao usar a entrada do usuário para a formação de solicitações do servidor para impedir que algo inesperado aconteça.

Outras dicas

é a codificação de caracteres de URL válidos causando um erro ou um problema?

Um problema pode ser que, por não fazê-lo, se você incorporar um link com caracteres não-codificado em um e-mail, o software de e-mail pode decidir quebrar a ligação em duas linhas.

Se você usar uma URL totalmente codificado no entanto, as chances de isso são muito reduzidas. Apenas uma maneira de vê-lo embora.

Eu podia ver, pelo menos no caso de "que seria bom tê-lo codificado ao usar o URL como um link em uma marca de âncora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top