Pergunta

Estou tentando descobrir como criar URLs personalizados para idiomas de dois bytes.

Por exemplo, este URL da Amazon Japan tem caracteres japoneses dentro do consultor (especificamente, o caminho):

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

O que eu gostaria de fazer é ter:

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

ou até

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

ser capaz de decodificar adequadamente o $GET[name] corda.

Eu acho que tentei todo o urldecode e utf8_decode Possibilidades, mas eu apenas fico sem sentido em resposta.

Tudo isso funciona bem em um formulário $_POST, mas eu preciso que esses URLs sejam enviados por e -mail ...

EDIT: Aqui está o código que estou 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 />";
   }
?>
Foi útil?

Solução

Entendi!

Eu precisava garantir que o cabeçalho estivesse relatando:

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

Depois que eu fiz isso, os personagens foram interpretados corretamente.

Eu também achei isso, que é um recurso muito bom:

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

Outras dicas

Você já tentou ler o valor GET diretamente? Como com $_SERVER['QUERY_STRING'] ou equivalente? Tenho certeza de que o urldecode() A função ainda tem alguns problemas, mesmo que funcione com o UTF-8 desde a versão 5.0.

este página No Php.net tem alguns comentários úteis, alguns especificamente para casos japoneses.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top