我正在试图弄清楚如何为双字节语言创建个性化的网址。
例如,来自亚马逊日本的这个网址在查询字符串中具有日文字符(特别是路径):
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 />";
}
?>
答案 0 :(得分:2)
知道了!
我需要确保标题报告:
header ('Content-type: text/html; charset=utf-8');
一旦我这样做,角色就被正确解释了。
我也找到了这个,这是一个非常好的资源:
答案 1 :(得分:0)
您是否尝试过直接阅读GET值?与$_SERVER['QUERY_STRING']
或同等的一样?我很确定urldecode()
函数仍然存在一些问题,即使它自版本5.0起也适用于UTF-8。
这个page在php.net上发表了一些有用的评论,其中一些专门针对日本案例。