Question

Je suis en train de comprendre comment créer urls personnalisées pour les langues à deux octets.

Par exemple, cette URL d'Amazon Japon a des caractères japonais dans le querystring (plus précisément, le chemin):

http://www.amazon.co.jp/風の谷のナウシカ-DVD-宮崎駿/dp/B00005R5J3/ref=sr_1_3?ie=UTF8&s=dvd&qid=1269891925&sr=8-3

Ce que je voudrais faire est d'avoir:

http://www.mysite.com/風の谷のナウシカ

ou même

http://www.mysite.com/index.php?name=風の谷のナウシカ

être en mesure de décoder correctement la chaîne de $GET[name].

Je pense que je l'ai essayé toutes les possibilités de urldecode et utf8_decode, mais je reçois juste charabia en réponse.

Tout cela fonctionne très bien sous une forme $_POST, mais je dois ces urls être emailable ...

EDIT: Voici le code que je utilise:

<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 />";
   }
?>
Était-ce utile?

La solution

Je l'ai!

Je avais besoin pour vous assurer que l'en-tête rapportait:

header ('Content-type: text/html; charset=utf-8');

Une fois que je l'ai fait, les personnages ont été interprétés correctement.

J'ai aussi trouvé ce qui est une très bonne ressource:

http://www.phpwact.org/php/i18n/utf-8

Autres conseils

Avez-vous essayé de lire la valeur GET directement? Comme avec $_SERVER['QUERY_STRING'] ou équivalent? Je suis assez sûr que la fonction de urldecode() a encore quelques problèmes, même si elle est censé fonctionner avec UTF-8 depuis la version 5.0.

sur au php.net a quelques commentaires utiles , certains spécifiquement pour les cas japonais.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top