In a recent project, I had the pleasure of troubleshooting a bug that involved images not loading when spaces were in the filename. I thought "What a simple issue, I'll UrlEncode()
it!" But, NAY! Simply using UrlEncode()
didn't resolve the problem.
The new problem was the HttpUtilities.UrlEncode()
method switched spaces (
) to plusses (+
) instead of %20
like the browser wanted. So file+image+name.jpg
would return not-found while file%20image%20name.jpg
was found correctly.
Thankfully, a coworker pointed out HttpUtilities.UrlPathEncode()
to me which uses %20
for spaces instead of +
.
WHY are there two ways of handling Url encoding? WHY are there two commands that behave so differently?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…