No ASP.NET, por que existe UrlEncode () AND UrlPathEncode ()?
Em um projeto recente, tive o prazer de solucionar um bug que envolvia imagens que não eram carregadas quando havia espaços no nome do arquivo. Eu pensei "Que questão simples, eu vouUrlEncode()
it! "Mas NAY! Simplesmente usandoUrlEncode()
não resolveu o problema.
O novo problema foi oHttpUtilities.UrlEncode()
espaços trocados de método ) para pontos positivos
+
) em vez d do%20
como o navegador queria. Entãofile+image+name.jpg
retornaria não encontrado enquantofile%20image%20name.jpg
foi encontrado corretamente.
Felizmente, um colega de trabalho apontouHttpUtilities.UrlPathEncode()
para mim que usa%20
para espaços em vez de+
.
WHY, existem duas maneiras de lidar com a codificação de URL? POR QUE existem dois comandos que se comportam de maneira tão diferente?