0

我试图弄清楚如何为双字节语言创建个性化的 url。

例如,来自 Amazon Japan 的这个 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]字符串。

我想我已经尝试了所有的urldecode可能性utf8_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 />";
   }
?>
4

2 回答 2

2

知道了!

我需要确保标题正在报告:

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

一旦我这样做了,字符就会被正确解释。

我还发现了这个,这是一个非常好的资源:

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

于 2010-03-29T20:34:35.903 回答
0

您是否尝试过直接读取 GET 值?与$_SERVER['QUERY_STRING']或等效?我很确定该urldecode()函数仍然存在一些问题,即使它应该从 5.0 版开始使用 UTF-8。

php.net 上的这个页面有一些有用的评论,有些是专门针对日本案例的。

于 2010-03-29T20:07:21.040 回答