Hi!
Beim Dekodieren ist darauf zu achten, dass "+" zu " " gewandelt werden, bevor die %xx kovertiert werden.
Ich habe schon input-decoder gesehem, die das verkehrt hatten.
Bei rawurlencode hat man solche Probleme nicht.
Das ist ein quasi ein Zwickmühlenproblem. Der Standard sagt +, aber es wird immer einige kaputte Programme geben, die den Standard nicht richtig interpretieren. Soll man deswegen empfehlen, den Standard generell zu missachten, selbst wenn man vom Problem nicht betroffen ist. Ich denke, wer dieses Problem hat, weil er Fremdsysteme mit Daten beschicken muss, sollte das im Einzelfall entscheiden, ob er auch im Querystring zu rawurlencode() greift.
Übrigens, wenn du aufmerksam liest, wird dir eine Stelle auffallen, wo ich diese Unterscheidung nicht mache. Das aber auch nur aus dem Grund, weil Javascript das Leerzeichen in seinen diesbezüglichen Funktionen generell zu %20 kodiert und ich keine Lust hatte, da noch eine Extrawurst zu kochen.
Lo!