python urllib中的编码处理示例
>>>importurllib >>>data='丽江' >>>printdata 丽江 >>>data '\xe4\xb8\xbd\xe6\xb1\x9f' >>>urllib.quote(data) '%E4%B8%BD%E6%B1%9F'
那我们想转回去呢?
>>>urllib.unquote('%E4%B8%BD%E6%B1%9F') '\xe4\xb8\xbd\xe6\xb1\x9f' >>>printurllib.unquote('%E4%B8%BD%E6%B1%9F') 丽江
不同的编码格式对urllib的结果页是有影响的,百度的是gbk,其他的一般网站比如google就是utf8的。所以可以用下列语句实现。
>>>importsys,urllib >>>s='丽江' >>>urllib.quote(s.decode(sys.stdin.encoding).encode('gbk')) '%C0%F6%BD%AD' >>>urllib.quote(s.decode(sys.stdin.encoding).encode('utf8')) '%E4%B8%BD%E6%B1%9F' >>>
这里的sys.stdin.encoding是读取当前环境的编码,这样写的话可移植性高,winnt和xunix都可以用。当然你如果看不惯,也可以替换为自己的环境编码如utf8等。