ie8 url不能正确传递中文
网站采用utf8编码,今天发现query.php?key=中文
echo $_GET['key'];尽然是乱码,默认是传递gb2312的,这是什么原因?怎么办?
ie6,chrome,firefox都正常,按utf8编码传递,就是ie8是按gb2312传的 你必须用<http-equiv="Content-Type" content="text/html;charset=utf-8">或者http的头里content-type告诉浏览器你的编码, 否则浏览器按照默认编码上传表单. 有设定编码的,不是表单上传的,是<a href="query.php?key=中文">链接</a>链接过去的,两个页面都有指明utf8编码的 这个编码只与你服务端生成时的编码有关, 本身就应该在服务端urlencode后追加到URL中, 浏览器根本不care.
你看看你的服务端php代码吧, 是字面常量则与php代码本身编码有关, 从数据库获取则与数据库编码有关。 这只是urlencode了吧 本帖最后由 hq22 于 2012-12-12 10:10 编辑
linux_c_py_php 发表于 2012-12-11 20:45 static/image/common/back.gif
是字面常量则与php代码本身编码有关
...
是字面常量则与php代码本身编码有关是什么意思?我就是写死在html文件中的链接,存为utf8编码,网页编码也设置为utf8
rawurlencode()后正常的
还有就是直接在地址栏直接输入 query.php?key=中文 下面接收到的就是gb2312的,而不是utf8 本帖最后由 imbiss 于 2012-12-12 17:50 编辑
回复 6# hq22
你有没有尝试过 query.php?key=urlencode("中文")?
FF浏览器的地址栏里有时候能显示中文,应该是浏览器已经作了一次urldecode工作的。你直接输入是会有问题的。
urlencode
页:
[1]