Domanda

Sto cercando di capire come creare URL personalizzati per lingue a doppio byte.

Ad esempio, questo URL da Amazon Giappone ha i caratteri giapponesi nel querystring (in particolare, il percorso):

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

Quello che vorrei fare è avere:

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

o anche

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

essere in grado di decodificare correttamente la stringa $GET[name].

credo di aver provato tutti i urldecode e utf8_decode possibilità, ma ottengo solo incomprensibile in risposta.

Il tutto funziona bene in una forma $_POST, ma ho bisogno di questi URL essere inviabile per email ...

EDIT: Ecco il codice che sto usando:

<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 />";
   }
?>
È stato utile?

Soluzione

Ci sono!

avevo bisogno di assicurarsi che il colpo di testa viene segnalando:

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

Una volta che ho fatto, i personaggi sono stati interpretati correttamente.

Ho trovato anche questo, che è una risorsa molto buona:

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

Altri suggerimenti

Hai provato a leggere direttamente il valore GET? Come con $_SERVER['QUERY_STRING'] o equivalente? Sono abbastanza sicuro che la funzione urldecode() ha ancora alcuni problemi, anche se si suppone di lavorare con UTF-8 a partire dalla versione 5.0.

Questa href="http://www.php.net/manual/en/function.urldecode.php" rel="nofollow pagina sopra a php.net ha alcuni utili commenti , un po 'particolare per i casi giapponesi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top