在GET参数中发送UTF8

时间:2013-04-27 15:57:59

标签: php utf-8

导航到这样的网址时:

http://example.com/user?u=ヴィックサ

我注意到Chrome将字符编码为:

http://example.com/user?u=%E3%83%B4%E3%82%A3%E3%83%83%E3%82%AF%E3%82%B5

一切都是有效的。

然而,在IE中我从我的代码中得到了这个错误:

  

您要查找的用户(?????)不存在。

注意五个问号。由于某种原因,PHP永远不会看到参数。

导致这种情况的原因是什么,有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

可悲的是,你想做的事情似乎不适用于当前一代的IE

此问题的接受答案UTF-8 Encoding issue in IE query parameters表示您需要自己编码字符而不是依赖浏览器,因为浏览器之间的支持各不相同,甚至可能是设备到设备

<a href='/path/to/page/?u=<?=urlencode('ヴィックサ')?>'>View User</a>

另外我假设你是从网络服务器设置utf8标题?你没有说,如果没有,在php

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