收藏此站 联系我们 宿迁腾云网络公司
全部 网站建设 SEO优化 技术日志
当前位置:网站首页 > 技术日志

非字母数字字符都将被替换成百分号“%”后跟两位十六数

作者: 腾云网络 . 阅读量: . 发表时间:2021-01-31

URLEncode:指网页URL中汉字的编码转换方法。最常见的方法是在百度和Google等搜索引擎中输入中文查询时生成编码的网页URL。

URLEncode通常有两种方式,一种是传统的基于GB2312的编码(由百度,Yisou等使用),另一种是基于UTF-8的编码(由Google,Yahoo等使用)。 )。

URLdecode:用于将url编码的字符串恢复为未编码的外观。

此工具通过两种方式实现编码和解码:

中文-> GB2312的编码->%D6%D0%CE%C4

中文-> UTF-8编码->%E4%B8%AD%E6%96%87

HTML中的URLEncode:

在编码为GB2312的html文件中:Chinese.rar->浏览器自动转换为->%D6%D0%CE%C4.rar

注意:Firefox不支持GB2312编码的中文URL,因为它默认情况下使用UTF-8发送URL,但是ftp://协议可以。我尝试过php url编码转换,我认为这应该被视为Firefox中的错误。

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

PHP中的URLEncode:

复制代码,代码如下:

1 php
2 //GB2312的Encode
3 echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+
4 echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
5 echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20
6 echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
7 ?>

除“ -_”外的所有非字母数字字符。将被替换为百分号“%”,后跟两个十六进制数字。

urlencode和rawurlencode之间的区别:urlencode将空格编码为加号“ +”php url编码转换,而rawurlencode将空格编码为加号“%20”。

如果要使用UTF-8编码,有两种方法:

一、将文件另存为UTF-8文件,并直接使用urlencode和rawurlencode。

二、使用mb_convert_encoding函数:

复制代码,代码如下:

1 php
2 $url = 'http://s.jb51.net/中文.rar';
3 echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
4 echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
5 //http%3A%2F%2Fs.jb51.net%2F%E4%B8%AD%E6%96%87.rar
6 ?>

示例:

复制代码,代码如下:

 1 php
 2 function parseurl($url="")
 3 {
 4 $url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8'));
 5 $a = array("%3A", "%2F", "%40");
 6 $b = array(":", "/", "@");
 7 $url = str_replace($a, $b, $url);
 8 return $url;
 9 }
10 $url="ftp://ud03:password@s.jb51.net/中文/中文.rar";
11 echo parseurl($url);
12 //ftp://ud03:password@s.jb51.net/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
13 ?>

JavaScript中的URLEncode:

例如:%E4%B8%AD%E6%96%87 -_。%20%E4%B8%AD%E6%96%87 -_。%20

encodeURI不对以下字符进行编码:“:”,“ /”,“;”,“?”,“ @”和其他特殊字符。

例如:%E4%B8%AD%E6%96%87.rarhttp%3A%2F %% 2F%E4%B8%AD%E6%96%87.rar


标签:urlencode
转载请注明来源:https://www.tyweb.net/jsrz/353.html
现在咨询免费送诊断方案,每天限3名
马上填写资料获取方案
腾云网络产品
网站建设 微信小程序 微商城 APP开发 SEO优化
腾云网络服务
7x24小时售后支持 市内上门服务 免费后台培训 定期回访
关于腾云网络
关于我们
网站建设案例 小程序案例 APP开发案例
联系腾云网络
联系腾云网络
紧急问题处理电话
131-6035-5545 131-6035-5545
131-6035-5545
扫一扫关注腾云网络公众号