En un proyecto reciente, tuve el placer de solucionar un error que involucraba imágenes que no se cargaban cuando había espacios en el nombre del archivo. Pensé "¡Qué problema tan simple, lo llamaré UrlEncode()
!" Pero, NAY! Simplemente usando UrlEncode()
no resolvió el problema.En ASP.NET, ¿por qué hay UrlEncode() Y UrlPathEncode()?
El nuevo problema era el método HttpUtilities.UrlEncode()
cambió espacios () para puntos extra (
+
) en lugar de %20
como el navegador quería. Por lo tanto, file+image+name.jpg
devolverá no encontrado mientras se encontró file%20image%20name.jpg
correctamente.
Afortunadamente, un compañero de trabajo me señaló HttpUtilities.UrlPathEncode()
que usa %20
para espacios en lugar de +
.
¿POR QUÉ hay dos formas de manejar la codificación de URL? ¿POR QUÉ hay dos comandos que se comportan de manera diferente?
Consulte http://stackoverflow.com/questions/602642/server-urlencode-vs-httputility-urlencode/603962#603962 para obtener una solución mejor que cualquiera de las dos. –
Posible duplicado: http://stackoverflow.com/q/4145823/2291 –
@Mufasa - mmm ... Sé la diferencia. Me pregunto por qué. – quakkels