当前位置:  -> 首页 -> PHP下解决URL在UTF-8编码情况下的乱码问题

上一篇 | 下一篇
PHP下解决URL在UTF-8编码情况下的乱码问题
作者:洛羽叶  点击率:9185  发布时间:2012-06-08
网页编程经常遇到的就是编码问题,邮箱收邮件乱码、页面乱码、数据库与页面交互乱码等,特别对于浏览器地址栏输入中文字符的乱码问题。
 
示例如下:http://www.luoriver.com/search-t4-a架构设计.html
经过伪静态处理后在PHP中通过GET获取到架构设计变量时为乱码,页面编码格式为UTF-8。
采用http://www.luoriver.com/search-t4-a%e6%9e%b6%e6%9e%84%e8%ae%be%e8%ae%a1.html访问依旧出现问题。
此时系统输入的URL地址为GB2312编码格式。
 
内部经过URLENCODE和URLDECODE依旧无法解决问题,通过PHP字符串编码函数进行码制判断和转换后问题解决。
 
1.$pagecharacter为页面编码,值为:utf-8。

先判断输入字符的编码格式,利用mb_detect_encoding函数进行检测:
$code=strtolower(mb_detect_encoding($keyword, array('ASCII','GB2312','GBK','UTF-8')));
 
2.如果和页面编码不同则进行转换
 
if(($code=='gb2312' || $code=='utf-8' || $code=='euc-cn') && $code!=$pagecharacter)
$keyword=iconv($code,$pagecharacter,$keyword);     
 
3.此时输出$keyword可以正常显示架构设计字样。
 
 
4.也可以采用mb_convert_encoding函数进行编码转换。

     要注意EUC-CN等通过GB2312编码。 
标签: PHP
引用地址:本站原创
   站点首页      技术人生      旅途足迹      我要留言      友情链接      关于站长   
[本站统计]
在线人数:1
今日访问:112
总访问量:1468696
Copyright 2006-2022 EasyWeb 1.6 订阅 All Rights Reserved
粤ICP备08028977号-1
www.luoriver.com
Created by WWH in 2006