evilmoe
Goto Top

Urlencode Leerzeichen unterschiedlich ersetzt

Guten Abend,

mir ist etwas merkwürdiges aufgefallen. Auf einer Seite nutze ich urlencode und urldecode.
Das merkwürdige ist das dass Leerzeichen unterschiedlich ersetzt wird, manchmal ein "%20" und manchmal ein "+". Soweit ich das gelesen habe dürfte ausschließlich ein "%20" kommen und wenn ich rawurlencode verwende ein "+".

Nun woran könnte das liegen? Gibt es eine PHP Einstellung dafür?


Sven

Content-ID: 193480

Url: https://administrator.de/contentid/193480

Ausgedruckt am: 24.11.2024 um 17:11 Uhr

nxclass
nxclass 30.10.2012 um 09:23:29 Uhr
Goto Top
Formulardaten in URLs werden zu "+", reine URL Teile zu %20

  • multipart/form-data MIME encoding und application/x-www-form-urlencoded wird Space zu "+"
  • rawurlencode "%20"
EvilMoe
EvilMoe 30.10.2012 um 09:25:46 Uhr
Goto Top
Hallo,

es handelt sich dabei nicht um Formulare.
Es geht um dynamische Links die damit escapet werden.


Sven
bytecounter
bytecounter 30.10.2012 um 09:50:40 Uhr
Goto Top
Dann wären ein paar Infos mehr nicht schlecht. Ich hätte auch vermutet, dass es an Formulardaten liegt.

lg
nxclass
nxclass 30.10.2012 aktualisiert um 23:53:14 Uhr
Goto Top
Möglich dass nur "+" (altes encoding) verwendet wird wenn keine Sonderzeichen in dem zu "encodenden String" enthalten sind.
Am besten mal eine Liste mit Beispielen generieren.

edit:
'www.google.de/s p a c e/?t e s t'  
  • rawurlencode() alle spaces werden zu %20
  • urlencode() alle werden zu +

Evtl. ist das ein anzeige Problem - beachte das viele Browser den Code nochmal "Nachformatieren"
EvilMoe
EvilMoe 31.10.2012 um 22:30:35 Uhr
Goto Top
Das Problem ist leider doch etwas komplexer.
Wenn ich so ein Beispiel mache erscheint der richtige Output.

Ich verwende als Template und Cache Engine SMARTY. Ich verwende überall im Code NUR urlencode, KEINE andere Funktionen. Trotzdem sehe ich manchmal ein "%20" statt ein "+" in der URL. Vielleicht liegt es auch an SMARTY, ich weiß es nicht.