urlencode 函数

理解URLEncode:
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
Html中的URLEncode:
编码为GB2312的html文件中,
http://ud03.kinoko.name/中文.rar -> 浏览器自动转换为 -> http://ud03.kinoko.name/%D6%D0%CE%C4.rar
注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了.我认为这应该算是Firefox一个bug.
编码为UTF-8的html文件中,
http://ud03.kinoko.name/中文.rar -> 浏览器自动转换为 -> http://ud03.kinoko.name/%E4%B8%AD%E6%96%87.rar
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://ud03.kinoko.name/中文.rar';
echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."/n";
echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."/n";
//http%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar
?>
实例:
function parseurl($url="")
{
$url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8'));
$a = array("%3A", "%2F", "%40");
$b = array(":", "/", "@");
$url = str_replace($a, $b, $url);
return $url;
}
$url=" ftp://ud03:password@ud03.kinoko.name/中文/中文.rar";
echo parseurl($url);
//ftp://ud03:password@ud03.kinoko.name/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
?>
JavaScript中的URLEncode:
%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20
encodeURI 不对下列字符进行编码:“:”、“/”、“;”、“?”、“@”等特殊字符。

http://ud03.kinoko.name/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用Python中的urllib.parse模块来使用urlencode函数。比如说,你可以这样使用它:from urllib.parse import urlencode params = {'name': 'John', 'age': '25'} print(urlencode(params)) 你的输出将会是name=John&age=25。 ### 回答2: Python中的urlencode函数是用来将字典或者元组形式的参数转化为URL编码的字符串。它主要用于构造GET请求的查询字符串。 使用urlencode函数的方法很简单。首先,需要导入urllib.parse模块,然后直接调用urlencode函数即可。函数的参数可以是一个字典或者一个元组,它们包含了需要编码的参数和对应的值。 下面是一个使用urlencode函数的例子: ``` from urllib.parse import urlencode params = { 'name': '张三', 'age': 20, 'city': '北京' } encoded_params = urlencode(params) print(encoded_params) ``` 输出结果为:name=%E5%BC%A0%E4%B8%89&age=20&city=%E5%8C%97%E4%BA%AC 可以看到,urlencode函数会将中文字符和特殊字符进行URL编码。在上面的例子中,'张三'编码为'%E5%BC%A0%E4%B8%89','北京'编码为'%E5%8C%97%E4%BA%AC'。 可以通过在调用urlencode函数时传入safe参数,来指定不需要编码的字符。如果某些字符不需要URL编码,可以将其添加到safe参数中。 ``` encoded_params = urlencode(params, safe=':/') print(encoded_params) ``` 输出结果为:name=%E5%BC%A0%E4%B8%89&age=20&city=北京 在这个例子中,'北京'不再被编码,保持原样。 总之,urlencode函数是一个非常方便的工具,在构造URL参数时经常用到。使用urlencode函数,可以将参数编码为URL安全的字符串,便于传递和处理。 ### 回答3: 在Python中,我们可以使用`urlencode()`函数来对URL参数进行编码。 `urlencode()`函数位于`urllib.parse`模块中,需要先导入该模块才能使用。使用方式如下: ```python from urllib.parse import urlencode ``` `urlencode()`函数接收一个字典作为参数,其中字典的键是参数名,值是参数值,它会将字典中的内容转化为URL编码的字符串。例如,我们要将以下字典转化为URL参数字符串: ```python params = { 'name': '张三', 'age': 20, 'gender': '男' } ``` 我们可以将其使用`urlencode()`函数转化为URL编码的字符串: ```python encoded_params = urlencode(params) ``` 转化后的结果如下: ``` name=%E5%BC%A0%E4%B8%89&age=20&gender=%E7%94%B7 ``` 在URL中,参数名和参数值之间使用`=`进行连接,不同参数之间使用`&`进行分隔。特殊字符会被转化为URL编码的形式,比如汉字"张三"会被转化为"%E5%BC%A0%E4%B8%89"。 最后,我们可以将转化后的URL编码字符串拼接在URL链接的末尾,以发送HTTP请求或构造带参数的URL链接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值