Double-Byte-Zeichen in Abfragezeichenfolgen mit PHP
-
23-09-2019 - |
Frage
Ich versuche, herauszufinden, wie personalisierte URLs für Double-Byte-Sprachen erstellen.
Zum Beispiel diese URL von Amazon Japan hat japanische Schriftzeichen im Abfragezeichenfolgeflag (genauer gesagt, der Weg):
http://www.amazon.co.jp/風の谷のナウシカ-DVD-宮崎駿/dp/B00005R5J3/ref=sr_1_3?ie=UTF8&s=dvd&qid=1269891925&sr=8-3
Was ich möchte, ist, zu tun haben:
http://www.mysite.com/風の谷のナウシカ
oder auch
http://www.mysite.com/index.php?name=風の谷のナウシカ
Lage sein, richtig die $GET[name]
Zeichenfolge zu entschlüsseln.
Ich glaube, ich habe all die urldecode
und utf8_decode
Möglichkeiten ausprobiert, aber ich Kauderwelsch nur als Antwort.
Das alles funktioniert gut in Form $_POST
, aber ich brauche diese URLs per ail ...
EDIT: Hier ist der Code verwende ich:
<p>Original: <?= $_GET[str]; ?>
<br>Decode: <?= urldecode($_GET[str]); ?>
<br>Decode querystring: <?= urldecode($_SERVER[QUERY_STRING]); ?>
<p>
<?
while (list($var,$value) = each ($_SERVER)) {
echo "$var => $value <br />";
}
?>
Lösung
Got it!
Ich musste sicher, dass der Header machen wurde berichtet:
header ('Content-type: text/html; charset=utf-8');
Nachdem ich das getan hätte, wurden die Zeichen richtig interpretiert.
Ich fand auch das, was eine sehr gute Ressource ist:
Andere Tipps
Haben Sie den GET-Wert direkt versucht, zu lesen? Wie bei $_SERVER['QUERY_STRING']
oder gleichwertig? Ich bin mir ziemlich sicher, dass die urldecode()
Funktion noch einige Probleme hat, auch wenn es mit UTF-8 seit der Version 5.0.
Das Seite bei php.net über hat einige nützliche Kommentare einige speziell für japanische Fällen.