Ich habe ein PHP-Skript implementiert.
Ich führe mein PHP-Skript über die folgende URL: http://server/script.php?param1=%80t%80PHP + Zeichencodierung + GET-Parameter
Also gebe ich einen GET-Parameter an mein PHP-Skript.
Der Parameter heißt param1.
param1 enthält die Zeichenfolge "€ t €", die als "% 80t% 80" URL-codiert ist.
Mein PHP-Skript ist mit der UTF-8-Norm codiert.
Ich frage mich, welche Zeichencodierung auf die Zeichenfolge in $ _GET ["param1"] angewendet wird.
Sicher ist die Zeichenkodierung auf $ _GET ["param1"] nicht UTF-8.
Der Grund: Der folgende Befehl in meinem PHP-Skript ergibt "80 74 80", was die hexadezimale Darstellung von $ _GET ["param1"] ist.
var_dump(unpack("H*", $_GET["param1"]));
Wenn die Zeichencodierung auf $ _GET [ "param1"] UTF-8 wurde dann der vorherige Befehl an PHP "e2 82 ac 74 e2 82 ac" führen würde.
Die Zeichenkodierung auf $ _GET ["param1"] ist nicht ISO-8859-1, auch nicht, weil das € -Symbol nicht im IS0-8859-1-Zeichensatz enthalten ist.
Um die ISO-8859-1 Kodierungstabelle zu sehen gehe zu http://en.wikipedia.org/wiki/ISO/IEC_8859-1
Also die PHP interne Kodierung von der mb_internal_encoding Funktion zurückgegeben gilt nicht für $ _GET ["param1"], weil es IS0-8859-1 ist.
Weiß jemand, welche Zeichenkodierung für die Zeichenfolge in $ _GET ["param1"] gilt?
Warum Sie verwenden auspacken? – Andreas