url - A html space is showing as %2520 instead of %20 -


passing filename firefox browser causes replace spaces %2520 instead of %20.

i have following html in file called myhtml.html:

<img src="c:\documents , settings\screenshots\image01.png"/> 

when load myhtml.html firefox, image shows broken image. right click link view picture , shows modified url:

file:///c:/documents%2520and%2520settings/screenshots/image01.png                     ^                     ^-----firefox changed space %2520. 

what heck? converted space %2520. shouldn't converting %20?

how change html file browser can find image? what's going on here?

a bit of explaining %2520 :

the common space character encoded %20 noted yourself. % character encoded %25.

the way %2520 when url has %20 in it, , gets urlencoded again, transforms %20 %2520.

are (or framework might using) double encoding characters?

edit: expanding bit on this, local links. assuming want link resource c:\my path\my file.html:

  • if provide local file path only, browser expected encode , protect characters given (in above, should give spaces shown, since % valid filename character , such encoded) when converting proper url (see next point).
  • if provide url file:// protocol, stating have taken precautions , encoded needs encoding, rest should treated special characters. in above example, should provide file:///c:/my%20path/my%20file.html. aside fixing slashes, clients should not encode characters here.

notes:

  • slash direction - forward slashes / used in urls, reverse slashes \ in windows paths, clients work both converting them proper forward slash.
  • in addition, there 3 slashes after protocol name, since silently referring current machine instead of remote host ( full unabbreviated path file://localhost/c:/my%20path/my%file.html ), again clients work without host part (ie 2 slashes only) assuming mean local machine , adding third slash.

Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -