Cookieinhalt-Kodierung: Statt der Pipe ein %7

suntrop

Erfahrenes Mitglied
Hallo.

Ich speichere zwei Werte in einem Cookie und möchte diese mittels | trennen.
Aber wenn ich mir das Cookie im Firefox ansehe, dann steht dort anstelle der Pipe ein %7

Was muss ich machen, damit die Pipe korrekt dort reingeschrieben wird?


Grüße
suntrop
 
Wenn du die PHP-Funktion setcookie() verwendest, werden die Daten bereits korrekt kodiert. Das |-Zeichen müsste dort als %7C kodiert werden.
Wenn du Platz sparen willst, verwendest du ein anderes Zeichen oder einen anderen Kode, so dass es nicht kodiert werden muss.
 
Ich habe schon alle möglichen Kombinationen von urldecode, utf8_decode … ausprobiert, aber immer steht %7C statt der Pipe drin.

Meine Sonderzeichen werden übrigens auch so kodiert. Ich nutzen überall UTF-8, habe aber damit sonst an keiner Stelle Probleme.

Ja, ich nutze setcookie(). Ist das so nach den Statuten, dass Nicht-ASCII Zeichen kodiert werden? Dann ist alles gut. Ich habe nur bei anderen Cookies gesehen, dass dort die Pipe enthalten ist. Wie machen die das?
 
Das HTTP arbeitet auf dem ASCII-Zeichensatz. Alle Nicht-ASCII-Zeichen müssen dort entsprechend kodiert werden.
Dass allerdings auch das |-Zeichen kodiert wird, ist gemäß Spezifikation zwar nicht notwendig aber dennoch erlaubt.
 
Zurück