2010-03-29 38 views
0

我想弄清楚如何为双字节语言创建个性化的URL。查询字符串中的双字节字符使用PHP

例如,从亚马逊日本此URL查询字符串(具体路径)中的日文字符:

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

我想这样做的是:

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

甚至

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

能够正确解码$GET[name]字符串。

我想我已尝试所有的urldecodeutf8_decode的可能性,但我只是得到了胡言乱语的回应。

这一切工作的形式$_POST罚款,但我需要这些网址通过电子邮件发送的......

编辑:这是我使用的代码:

<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 />"; 
    } 
?> 
+0

你能告诉一些莫名其妙的话?你是否也在使用UTF-8进行展示? – 2010-03-29 19:59:56

回答

2

Got it!

我需要确保的头球攻门被报告:

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

一旦我做到了,人物进行了适当的解释。

我也发现了这一点,这是一个很好的资源:

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

0

您是否尝试过阅读GET值直接?与$_SERVER['QUERY_STRING']一样吗?我很确定urldecode()函数仍然存在一些问题,即使它自5.0版以后可以使用UTF-8。

这个page在php.net有一些有用的意见,一些专门针对日本的情况。