PHPWPS

 找回密码
 立即加入

QQ登录

只需一步,快速开始

搜索
热搜: php discuz
查看: 7242|回复: 0

[PHP] php解决utf-8环境下url为gb2312的乱码问题

[复制链接]

280

主题

420

帖子

1970

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1970
发表于 2013-7-11 10:10:49 | 显示全部楼层 |阅读模式
  1. $wd2=iconv("gb2312","UTF-8",$wd);
  2. if($wd2==''){$wd=$wd;}else{$wd=$wd2;}
复制代码
看到了木有?你可以设置$wd为url的Encode编码,不管是utf-8的还是gb2312的都可以。
第一行意思:先转换为utf-8编码了再说。
貌似utf-8转utf-8得出的$wd2为空,gb2312转utf-8的才不会为空
所以,第二行意思:判断转换的结果$wd2是否为空,当为空的时候,$wd等于最原始的数据,否则,就等于iconv处理了的数据,也就是$wd2

看到网上有通过ascii进行判断,结果不管那种编码的结果都是1,不晓得是干嘛用的,嘿嘿,也许偶技术不到家。

ps:url的中文编码有2种,一种是utf-8,还有一种是gb2312.其中utf-8他会把一个汉字处理成3个带有%的数据,而gb2312则把一个汉字处理成2个带有%的数据。所以如果想从百分号来进行判断,这个是不可行的,如果一串6个百分号的,你晓得是utf-8的2个汉字,还是gb2312的3个汉字哇
所以,推荐用偶最上面的方法来进行处理url的中文编码乱码问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|Archiver|phpwps Inc. ( 鄂ICP备14011625号-1 )

GMT+8, 2025-5-4 16:07 , Processed in 0.053041 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表