• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHPurlencode中文兼容任意浏览器

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu、Google等搜索引擎中输入中文查询时候,生成经过Encode过的网页URL。

URLEncode的方式一般有两种,一种是传统的基于GB2312的Encode(Baidu、Yisou等使用),另一种是基于UTF-8的Encode(Google、Yahoo等使用)。

本工具分别实现两种方式的Encode与Decode:

中文 -> GB2312的Encode -> %D6%D0%CE%C4

中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87

注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了,我认为这应该算是Firefox一个bug。

HTML中的URLEncode:

编码为GB2312的html文件中:http://s.ogeek.net/中文.rar -> 浏览器自动转换为 -> http://s.ogeek.net/%D6%D0%CE%C4.rar

注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了,我认为这应该算是Firefox一个bug。

编码为UTF-8的html文件中:http://s.ogeek.net/中文.rar -> 浏览器自动转换为 -> http://s.ogeek.net/%E4%B8%AD%E6%96%87.rar

 

让所有浏览器兼容的 方案:

使用mb_convert_encoding函数,列子:

$url='http://www.fx678.com:800/?code=编码678_%678';

//未知原编码,通过auto自动检测后,转换编码为utf-8
$convert_url=mb_convert_encoding($url, "UTF-8", "auto");
echo $convert_url.'<br/>';


$url_urle=urlencode(mb_convert_encoding($url, 'utf-8', 'auto'));
$url_rawu= rawurlencode(mb_convert_encoding($url, 'utf-8', 'auto'));
echo $url_urle."<br/>";
echo $url_rawu."<br/>";


echo urldecode($url_urle)."<br/>";
echo rawurldecode($url_rawu)."<br/>";

结果:

http://www.fx678.com:800/?code=编码678_%678
http%3A%2F%2Fwww.fx678.com%3A800%2F%3Fcode%3D%E7%BC%96%E7%A0%81678_%25678
http%3A%2F%2Fwww.fx678.com%3A800%2F%3Fcode%3D%E7%BC%96%E7%A0%81678_%25678
http://www.fx678.com:800/?code=编码678_%678
http://www.fx678.com:800/?code=编码678_%678

 

结论 用下面的方法就好:

$url='http://www.fx678.com:800/?code=编码678_%678';

$url_urle=urlencode(mb_convert_encoding($url, 'utf-8', 'auto'));
echo $url_urle."<br/>";
echo urldecode($url_urle)."<br/>";

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP中的错误处理、异常处理机制详解发布时间:2022-07-10
下一篇:
PHP中的僵尸进程、孤儿进程详解发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap