我试图找出如何创建双字节语言的个性化网址。

例如,从Amazon日本这个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 />";
   }
?>
有帮助吗?

解决方案

知道了!

我需要确保报头被报告:

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

在我这样做时,字符被适当解释。

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

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

其他提示

您是否尝试过直接读取值?正如$_SERVER['QUERY_STRING']或等同?我敢肯定的是,urldecode()功能还是有一些问题,即使因为5.0版本它应该工作,UTF-8。

超过在php.net有一些有用的评论一些专门为日语的情况。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top