欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > PHP > php urlencode()函数URL编码转换实例解析

php urlencode()函数URL编码转换实例解析

2018-06-23 540 收藏 0 赞一个 0 真差劲 0 去评论

URLEncode:是对网页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

Html网页中的URLEncode:

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

后来发现Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,这应该算是火狐的一个bug。

下面来看一段PHP中URLEncode编码转换的代码实例:

//GB2312中的Encode示例
echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+
echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20
echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.

除了“-_.”之外的所有非字母数字字符都将被替换成百分号“%”后跟两位十六进制数。

urlencode和rawurlencode的区别:urlencode将空格编码为加号“+”,rawurlencode将空格编码为加号“%20”。

如果要使用UTF-8的Encode,有两种方法:

第一种是将文件保存为UTF-8文件,直接使用urlencode、rawurlencode即可。

第二种方法是使用mb_convert_encoding函数转换,示例代码如下:

$url='http://www.baidu.com/中文.rar';
echo urlencode(mb_convert_encoding($url,'utf-8','gb2312'))."\n";
echo rawurlencode(mb_convert_encoding($url,'utf-8','gb2312'))."\n";

注:encodeURI不对“:”、“/”、“;”、“?”、“@”等特殊字符进行编码。

一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论