python中对URL的编码与解码
2017-02-05 15:44
197 查看
url中的query带有特殊字符(不是url的保留字)时需要进行编码。当url中带有汉字时,需要特殊的处理才能正确编码,以下都只针对这种情形,当然也适用于纯英文字符的url。
(1) url编码:
(2) url解码:
函数调用的参数以及结果都是utf-8编码的,所以在对url编码时,需要将参数串的编码从原始编码转换成utf-8,
对url解码时,需要将解码结果从utf-8转换成原始编码格式。
依据网站采用的编码不同,或是gbk或是utf-8,赋赋予不同的编码,进行不同的url转码。GBK格式,一个中文字符转为%xx%xx,共两组;utf-8格式,一个中文字符转为%xx%xx%xx,共三组。
%25E5%25A2%25A8%25E8%25A5%25BF%25E5%2593%25A5%25E5%25A5%25B3%25E5%25AD%25A9%25E8%25A2%25AB%25E6%258B%25904%25E5%25B9.................................................................................这样的形式。
同样需要两次解码后才能得到中文。
(1) url编码:
import urllib url = 'http://test.com/s?wd=哈哈' #如果此网站编码是gbk的话,需要进行解码,从gbk解码成unicode,再从Unicode编码编码为utf-8格式。 url = url.decode('gbk', 'replace') print urllib.quote(url.encode('utf-8', 'replace')) 结果: http%3a%2f%2ftest.com%2fs%3fwd%3d%e5%93%88%e5%93%88
(2) url解码:
import urllib encoded_url = 'http%3a%2f%2ftest.com%2fs%3fwd%3d%e5%93%88%e5%93%88' print urllib.unquote(encoded_url).decode('utf-8', 'replace').encode('gbk', 'replace') #反过来
函数调用的参数以及结果都是utf-8编码的,所以在对url编码时,需要将参数串的编码从原始编码转换成utf-8,
对url解码时,需要将解码结果从utf-8转换成原始编码格式。
依据网站采用的编码不同,或是gbk或是utf-8,赋赋予不同的编码,进行不同的url转码。GBK格式,一个中文字符转为%xx%xx,共两组;utf-8格式,一个中文字符转为%xx%xx%xx,共三组。
>>> import sys,urllib >>> s = '杭州' >>> urllib.quote(s.decode(sys.stdin.encoding).encode('gbk')) %BA%BC%D6%DD >>> urllib.quote(s.decode(sys.stdin.encoding).encode('utf8')) '%E6%9D%AD%E5%B7%9E'
a = "墨西哥女孩被拐4年接客4万次 生的孩子成为人质-搜狐新闻" print urllib.quote(urllib.quote(a))进行两次编码转换后,会变为:
%25E5%25A2%25A8%25E8%25A5%25BF%25E5%2593%25A5%25E5%25A5%25B3%25E5%25AD%25A9%25E8%25A2%25AB%25E6%258B%25904%25E5%25B9.................................................................................这样的形式。
同样需要两次解码后才能得到中文。
相关文章推荐
- Python接口自动化--URL参数的编码和解码 6
- Python2.x 利用urllib.quote实现url地址编码解码
- python对URL的编码和解码
- URL解码(Decode)/编码(Encode)
- python模块之email: 电子邮件编码解码 (一、解码邮件)
- URL解码(Decode)/编码(Encode)
- python 解码base64编码邮件
- javascript 的URL 编码 和 解码 的几种方法 以及比较
- JavaScript Base64编码和解码,实现URL参数传递。
- Delphi中对URL进行编码和解码
- URL解码(Decode)/编码(Encode)
- C cgi url 编码解码问题
- python模块之email: 电子邮件编码解码 (二、编码邮件)
- encodeURIComponent编码 URLDecoder.decode解码乱码的问题
- javascript url 编码(UTF-8) jsp 解码
- jscript对URL参数进行编码与解码
- Python字符串的编码和解码
- python模块之email: 电子邮件编码解码 (二、编码邮件)
- Javascript下对URL字符串的编码与解码
- python 实现的huffman 编码压缩,解码解压缩