我正在尝试弄清楚如何为双字节语言创建个性化的urls。
例如,来自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]字符串。
我想我已经尝试了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 />";
}
?>发布于 2010-03-30 04:34:36
明白了!
我需要确保标题是报告的:
header ('Content-type: text/html; charset=utf-8');一旦我这样做了,字符就被正确地解释了。
我还发现了这个,这是一个非常好的资源:
http://www.phpwact.org/php/i18n/utf-8
发布于 2010-03-30 04:07:21
您是否尝试过直接读取GET值?和$_SERVER['QUERY_STRING']一样,还是等效的?我非常确定urldecode()函数仍然存在一些问题,即使它应该在5.0版之后就可以与UTF8一起使用。
php.net上的这位page有一些有用的评论,其中一些是专门针对日本案例的。
https://stackoverflow.com/questions/2540800
复制相似问题