Mailinglisten-Archive |
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