Estou tentando enviar uma mensagem GET que contém seqüências de caracteres com e comercial e não consigo descobrir como escapar do e comercial na URL.
Exemplo:
http://www.example.com?candy_name=M&M
result => candy_name = M
Eu também tentei:
http://www.example.com?candy_name=M\&M
result => candy_name = M\\
Estou usando URLs manualmente, então só preciso dos caracteres corretos.
Não posso usar nenhuma biblioteca. Como pode ser feito?
http
url
get
query-string
query-parameters
tomermes
fonte
fonte
A potentially dangerous Request.Path value was detected from the client (&).
Isso não se aplica apenas ao e comercial nos URLs, mas a todos os caracteres reservados . Alguns dos quais incluem:
A idéia é a mesma que codificar um
&
em um documento HTML, mas o contexto mudou para estar dentro do URI, além de estar dentro do documento HTML. Portanto, a codificação percentual evita problemas com a análise dentro dos dois contextos.O lugar em que isso é útil é quando você precisa colocar um URL dentro de outro URL. Por exemplo, se você deseja postar um status no Twitter:
Existem muitos caracteres reservados no meu Tweet, ou seja
?'():/
, codifiquei todo o valor dostatus
parâmetro URL. Isso também é útil ao usarmailto:
links que possuem um corpo ou assunto da mensagem, porque você precisa codificar os parâmetrosbody
esubject
para manter intactas as quebras de linha, oe comercial, etc.http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters
fonte
! ' ( ) *
não há URL codificado usandoencodeURIComponent
.Tente usar
http://www.example.org?candy_name=M%26M
.Veja também esta referência e mais algumas informações na Wikipedia .
fonte
Você pode usar o caractere% para 'escapar' caracteres que não são permitidos em URLs. Veja [RFC 1738].
Uma tabela de valores ASCII em http://www.asciitable.com/ .
Você pode ver
&
26 em hexadecimal - então você precisa de M% 26M.fonte
Isso pode ajudar se alguém quiser em PHP
fonte
Se você não puder usar nenhuma biblioteca para codificar o valor, http://www.urlencoder.org/ ou http://www.urlencode-urldecode.com/ ou ...
Basta digitar o seu valor "M&M", não o URL completo ;-)
fonte
Gostaria de adicionar um pequeno comentário sobre a solução Blender.
Você pode fazer o seguinte:
Isso gera:
O melhor de tudo isso não funciona apenas para & mas para qualquer personagem especial.
Por exemplo:
Saídas:
fonte
Você pode passar seus argumentos usando essa função encodeURIComponent para não precisar se preocupar em passar caracteres especiais.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
fonte