En ASP.NET, ¿por qué hay UrlEncode () Y UrlPathEncode ()?

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, voy aUrlEncode() it! "Pero, ¡NO! Simplemente usandoUrlEncode() no resolvió el problema.

El nuevo problema fue elHttpUtilities.UrlEncode() método espacios conmutados ) a plusses +) en luga de%20 como quería el navegador. Asi quefile+image+name.jpg devolvería no encontrado mientras quefile%20image%20name.jpg se encontró correctamente.

Gracias, un compañero de trabajo señalóHttpUtilities.UrlPathEncode() para mí 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 tan diferente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta