Quais caracteres especiais são seguros para usar no URL?
Quais caracteres especiais são seguros para usar no URL?
Respostas:
Os caracteres seguros são az, AZ, 0-9 e _ - (sublinhado e menos), além dos caracteres reservados que são usados para os parâmetros.
Outros personagens darão problemas em algum grau. exemplo: se um parâmetro é uma matriz?param=array[content]
ou seja, mostrará um URL com os URL dos colchetes codificados, que parecem feios e impossíveis de serem ditados.
Mas o problema não é apenas feio, digamos que você tenha um jpg com um caractere ao lado dos mais seguros, muitas vezes o navegador não poderá baixá-lo obtendo um 404. Esse é um problema de navegadores mais antigos e de alguns navegadores móveis.
Como testar isso?
Eu tenho uma caixa de entrada com 14000 e-mails comprovando meu argumento.
Os seguintes caracteres têm um significado especial no componente do caminho da sua URL (o componente do caminho é tudo antes do '?'):
";" | "/" | "?"
Além desses, os seguintes caracteres têm um significado especial na parte da consulta do seu URL (tudo depois de '?'). Portanto, se eles estão atrás do '?' você precisa escapar deles:
":" | "@" | "&" | "=" | "+" | "$" | ","
Para uma explicação mais aprofundada, consulte o RFC .
As respostas aqui são boas, mas há mais uma exceção que acho que vale a pena mencionar - caracteres não ingleses. Fazendo referência a essa pergunta do SF aqui , caracteres como ñ (como em espanhol) são perfeitamente legítimos, se tiverem sido codificados no seu DNS corretamente.
Você precisa usar o Punycode no seu DNS para que eles sejam resolvidos em navegadores modernos (a entrada para español é xn--espaol-zwa
), mas agora eles são perfeitamente seguros para uso em nomes de domínio, pois são fáceis para os que não falam inglês também .