Por que em muitas integrações HTTP , tal como as da TecnoSpeed temos que enviar ‘S%C3%A3o%20Paulo’ em vez de ‘São Paulo’?

A resposta é simples e seria algo como: se não enviar assim, o servidor que receber sem o URL Encode simplesmente não irá conseguir interpretar o que foi enviado e retornará um erro. Por exemplo: o navegador onde você está lendo isto, faz exatamente este processo para resolver os links da barra de endereços. Vamos lá! Digite o seguinte link https://www.google.com.br/?q=São Paulo e veja como ficou a palavra São Paulo, e não foi Google quem fez isso, foi o seu navegador. Que fique claro, não é uma boa prática, é uma regra para comunicação via HTTP quando existem dados na url após o endereço principal, no nosso caso seria o que vem após https://www.google.com.br/ .

Tecnicamente, encodar uma URL é converter caracteres em um formato ( ASCII ) que possa ser transportado pela internet. ASCII significa “American Standard Code for Information Interchange”. No caso dos métodos ou ferramentas que fazem o encode, elas transformam caracteres inseguros por ‘%’ seguidos de dois caracteres hexadecimais, por exemplo: ‘+’ por ‘%2B’.

 

Como fazer?

 

 

 

 

 

Todas as linguagens devem possuir um método que faça isso e com nomes bem parecidos com os dos exemplos acima. Bem, eu não sei todos, mas certamente o Google sabe, se não souber, ele sabe quem sabe :)