In un progetto recente, ho avuto il piacere di risolvere un bug che implicava il mancato caricamento delle immagini quando gli spazi erano nel nome file. Ho pensato "Che problema semplice, lo farò UrlEncode()
!" Ma, NAY! Semplicemente usando UrlEncode()
non è stato risolto il problema.In ASP.NET, perché c'è UrlEncode() AND UrlPathEncode()?
Il nuovo problema era il metodo HttpUtilities.UrlEncode()
acceso spazi () per plusses (
+
) invece del %20
come il browser voleva. Quindi file+image+name.jpg
restituirebbe non trovato mentre file%20image%20name.jpg
è stato trovato correttamente.
Per fortuna, un collega ha indicato HttpUtilities.UrlPathEncode()
per me che utilizza %20
per gli spazi anziché +
.
PERCHÉ esistono due modi per gestire la codifica Url? PERCHÉ ci sono due comandi che si comportano in modo così diverso?
Vedere http://stackoverflow.com/questions/602642/server-urlencode-vs-httputility-urlencode/603962#603962 per una soluzione migliore di entrambi. –
Possibile duplicato: http://stackoverflow.com/q/4145823/2291 –
@Mufasa - mmm ... Conosco la differenza. Mi sto chiedendo perché. – quakkels