在使用PHP查询字符串的双字节字符
-
23-09-2019 - |
题
我试图找出如何创建双字节语言的个性化网址。
例如,从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 />";
}
?>
解决方案
知道了!
我需要确保报头被报告:
header ('Content-type: text/html; charset=utf-8');
在我这样做时,字符被适当解释。
我还发现这一点,这是一个很好的资源:
其他提示
您是否尝试过直接读取值?正如$_SERVER['QUERY_STRING']
或等同?我敢肯定的是,urldecode()
功能还是有一些问题,即使因为5.0版本它应该工作,UTF-8。
此页超过在php.net有一些有用的评论一些专门为日语的情况。
不隶属于 StackOverflow