phpbar.de logo

Mailinglisten-Archive

[php] Re: =?iso-8859-1?Q?=5Bphp=5D_Parameter=FCbergabe_im_Pfad_unter_Windows?=

[php] Re: =?iso-8859-1?Q?=5Bphp=5D_Parameter=FCbergabe_im_Pfad_unter_Windows?=

Martin Ramsch m.ramsch_(at)_computer.org
Sat, 31 Jul 1999 13:32:27 +0200


Manuel Hoßfeld schrieb dann heute:
> > This differs from the RFC1738 encoding (see rawurlencode ) in that
> > for historical reasons, spaces are encoded as plus (+ ) signs.
[...]
> Genau über diese Formulierung bin ich vor ein paar Monaten 
> nämlich auch schon gestolpert - wurde auch kurz hier diskutiert, 
> ich weiß allerdings nicht mehr so genau wann und mit wem (und 
> bin jetzt auch zu faul nachzusehen)...

War ich, am 28. Mai :)

Das sprachliche Problem ist, daß "in that" hier in der Bedeutung
"darin daß" verwendet wird und nicht - wie man leicht vermutet - in
der Bedeutung, "in dem".  Und ein Komma fehlt.  Sollte wirklich
umformuliert werden, z.B. so:
| The difference to the RFC1738 encoding is that spaces are encoded as
| plus (+) signs, whereas RFC1738 encodes spaces as %20.

Hier mein Text von damals:

| Manuel Hossfeld schrieb am Donnerstag, den 27. Mai 1999:
| > BTW: Weiß eigentlich jemand, wo genau der Unterschied zwischen
| > urlencode() und rawurlencode() liegt?
| 
| Die Frage hab' ich mir auch gestellt, als ich die beiden Funktionen
| entdeckt hatte. :)
| 
| > Die Doku liest sich an der Stelle ja sinngemäß wie "bei urlencode
| > werden spaces durch + codiert, wohingegen bei rawurlencode space
| > durch + codiert werden"... Häh?
| 
| rawurlencode kodiert Leerzeichen als %20.  Das ist der einzige
| Unterschied zu urlencode, wo ein Plus erzeugt würde.
| 
| Zum Testen:
|   for($i=0; $i<=255; $i++) {
|     $c = chr($i); $u1 = urlencode($c); $u2 = rawurlencode($c);
|     if ($i<32 or $i>=127 and $i<160) { $c = " "; }
|     printf("%3d %s : %-3s %-3s %s\n", $i, $c, $u1, $u2, $u1==$u2);
|   }
| 
| Hintergrund:
|   Die Kodierung von Leerzeichen als Plus war eigentlich nie so per
|   Standard vorgesehen, aber Mosaic, einer der ersten WWW-Browser,
|   hatte es so implementiert - wahrscheinlich, damit derart kodierte
|   URLs etwas besser lesbar sind.
|   Die im Standard RFC 1738 definierte URL-Kodierung hat jedenfalls
|   diese Sonderregel für Spaces nicht.
| 
|   Wenn man also nicht sicher weiß, nach welcher der beiden
|   Konventionen der Empfänger eine URL-Kodierung dekodieren wird,
|   sollte man sicherheitshalber "rawurlencode" verwenden, denn
|   dann kann beim Dekodieren nichts schiefgehen.

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7


php::bar PHP Wiki   -   Listenarchive