奇怪!大家勿必来帮忙 请大家耐心看下去,帮我分析分析。 首先声明,文件是utf-8编码无疑,主机也都是linux。经多次测试—— 现在用的两个主机分别是华夏名网和赢网的,下面的:
<a href="?str=%E7%88%B1%E6%97%A0%E9%99%90">爱无限</a><br /><?php<br />echo $_GET['str'];<br />?> 文件都能显示中文“爱无限”。代码接收表现正常。
但我新买了中电的空间,却发生奇怪的现象,即:
<a href="?str=%25E7%2588%25B1%25E6%2597%25A0%25E9%2599%2590">爱无限</a>(这里str参数——要再urlencode一次)<br /><?php<br />echo $_GET['str'];<br />?> 或
<a href="?str=%E7%88%B1%E6%97%A0%E9%99%90">爱无限</a><br /><?php<br />echo iconv( 'gb2312','utf-8', $_GET['str']);<br />?> 才能正确显示中文“爱无限”,是怎么回事呢!
文件编码已是utf-8为什么还要转呢,或者说中途怎么变了呢!
------最佳解决方案-------------------- http 头信息中有
MS-Author-Via: DAV
而 DAV 的含义是 The server's preferred method for authoring is WebDAV
WebDAV 是微软的 http 协议扩展
据此猜测该服务器总是按 unicode 编码处理多字节文字的
对应的中文就是 gbk
------其他解决方案-------------------- 浏览器是utf-8编码么
爱无限 这样如何
------其他解决方案-------------------- 既然你说“勿必来帮忙”,那我就路过算了
提示 ASCII(25)==%
------其他解决方案-------------------- 查看一下主机默认的编码是不是utf8
------其他解决方案--------------------
引用:
浏览器是utf-8编码么爱无限 这样如何
1、要知道,我肯定是用同一个浏览器测的,头两个主机正常,新主机不正常。
2、还是乱码,得iconv( 'gb2312','utf-8', $_GET['str']);
怪,本来所传的%E7%88%B1%E6%97%A0%E9%99%90已是utf-8编码,接收显示为什么还转码,是主机系统设置了什么么?
------其他解决方案-------------------- 勿来帮忙
------其他解决方案--------------------
引用:
查看一下主机默认的编码是不是utf8
怎么查这个呢,请问
------其他解决方案-------------------- 1、用echo ini_get('default_charset');查,输出:utf-8
没错。
2、用echo mb_detect_encoding($_GET['str']);查(str.php?str=%E7%88%B1%E6%97%A0%E9%99%90),输出:CP936
问题出现了!——不是utf-8
------其他解决方案--------------------
引用:
http 头信息中有 MS-Author-Via: DAV 而 DAV 的含义是 The server's preferred method for authoring is WebDAV WebDAV 是微软的 http 协议扩展 据此猜测该服务器总是按 unicode 编码处理多字节文字的 对应的中文就是 gbk
老大那怎么办呢?点拔一下。
------其他解决方案-------------------- 好了,联系到主机商,主机商给调好了,是它们主机的事。结帖!
Statement: The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn