免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lenruobin
打印 上一主题 下一主题

如何正确取得从其他网站get过来的utf8 编码的变量? [复制链接]

论坛徽章:
0
21 [报告]
发表于 2004-06-28 21:57 |只看该作者

如何正确取得从其他网站get过来的utf8 编码的变量?

再次感谢shukebeita 大哥


   经提醒,我也找了台linux服务器进行测试,发现可以正确得到变量。

测试环境:
  redhat 9.0  php 4.3  apache 2.04  可以正确取得utf8编码的变量

  而在 windows 2000/windows 2003 IIS   + php 不能正确得到变量。
       windows 2000/windows 2003  apache +php  没有测试。

看来得申请换 linux服务器啦。

再次感谢各位好心的朋友
longnetpro 该用户已被删除
22 [报告]
发表于 2004-06-29 02:41 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
23 [报告]
发表于 2004-06-29 05:29 |只看该作者

如何正确取得从其他网站get过来的utf8 编码的变量?

php+iis和php+apache(2k)效果一样

论坛徽章:
0
24 [报告]
发表于 2004-06-29 08:39 |只看该作者

如何正确取得从其他网站get过来的utf8 编码的变量?

[quote]原帖由 "longnetpro"]shukebeita弄错了,不是什么apache+php+windows的问题,而是程序与处理方法的问题。不要用记事本打开,那样只会看到不正确的东西。而要直接用PHP程序在GET完了之后保存为文件,用UE之类的编辑器打开,这时你看到的才..........[/quote 发表:

我开始的想法和你的一样,看了楼主的测试代码以后才觉得可能真的有问题所以特别修改了两段测试码放在2个环境下跑了一跑,才有结论的。测试代码中不是用记事本看出来的,而是用split('&',$getString)来分解url应该不存在你说的字符处理问题。你如果有兴趣可以自己跑一下看看。总之在用url中直接使用utf-8的字符非常野蛮,是没文化的典型特征,真的保不齐哪天会出错。
longnetpro 该用户已被删除
25 [报告]
发表于 2004-06-29 14:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
26 [报告]
发表于 2004-06-29 15:30 |只看该作者

如何正确取得从其他网站get过来的utf8 编码的变量?

1.php
charset=UTF-8:

  1. <a href="?msg=请帮我查一下本辆摩托车的真假">;察看</a>;<br>;
  2. <?php echo ($_GET['msg']);?>;
复制代码

不正常
charset=UTF-8

  1. <a href="?msg=%C7%EB%B0%EF%CE%D2%B2%E9%D2%BB%CF%C2%B1%BE%C1%BE%C4%A6%CD%D0%B3%B5%B5%C4%D5%E6%BC%D9">;察看</a>;<br>;
  2. <?php echo ($_GET['msg']);?>;
复制代码

正常

2.asp, charset:UTF-8

  1. <a href="?msg=请帮我查一下本辆摩托车的真假">;察看</a>;<br>;
  2. <%=Request.QueryString("msg")%>;
复制代码

不正常

1.php的header:
[quote]
GET /1.php?msg=璇峰府鎴戞煡涓

论坛徽章:
0
27 [报告]
发表于 2004-06-29 19:44 |只看该作者

如何正确取得从其他网站get过来的utf8 编码的变量?

经过我再次测试,得出以下结论。

windows2000/windows2003  php+IIS  以 CGI模式安装 ,get utf-8编码的变量时可能会出错。

windows2000/windows2003  php+IIS  以 ISAPI模式安装,能够正确get utf-8编码的变量。

现在换成 isapi模式安装的php了,没有出现错误啦。
longnetpro 该用户已被删除
28 [报告]
发表于 2004-06-29 22:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
longnetpro 该用户已被删除
29 [报告]
发表于 2004-06-29 22:27 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
30 [报告]
发表于 2004-06-29 22:30 |只看该作者

如何正确取得从其他网站get过来的utf8 编码的变量?

原帖由 "lenruobin" 发表:
J桨沧埃?芄徽?穏et utf-8编码的变量。

现在换成 isapi模式安装的php了,没有出现错误啦。


我的两个平台:php4.3.7是iis,isapi模式,w2k英文版;w2k server中文版+apache2.0.48+php4.3.7,ie中选项是不是始终utf-8发送都用过,出现的问题跟你描述的一样。连乱码都一样的。charset换作gb2312就没有问题。但是不排除我测试的方法有误。


to longnetpro,代码里%xx%xx%xx是urlencode之后的,而那个明码的汉字是正常的字符,贴的这几段代码我测试过。

现在我自己只了解了一个问题,就是ie如果发现charset=utf-8,那么它提交url的时候不会自动urlencode。

问题出在发送请求那一方了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP