pkd*_*dkk 5 python urllib urlencode
如何用特殊字符urøå对一个字符串进行urlencode?
恩.
urllib.urlencode('http://www.test.com/q=testæøå')
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:( ..
不是有效的非字符串序列或映射对象
bob*_*nce 26
urlencode 旨在采取字典,例如:
>>> q= u'\xe6\xf8\xe5' # u'æøå'
>>> params= {'q': q.encode('utf-8')}
>>> 'http://www.test.com/?'+urllib.urlencode(params)
'http://www.test.com/?q=%C3%A6%C3%B8%C3%A5'
Run Code Online (Sandbox Code Playgroud)
如果您只想对单个字符串进行URL编码,那么您正在寻找的功能是quote:
>>> 'http://www.test.com/?q='+urllib.quote(q.encode('utf-8'))
'http://www.test.com/?q=%C3%A6%C3%B8%C3%A5'
Run Code Online (Sandbox Code Playgroud)
我猜UTF-8是正确的编码(它应该适用于现代网站).如果您真正想要的是?q=%E6%F8%E5,那么您想要的编码可能cp1252(类似于iso-8859-1).
您应该将字典传递给urlencode,而不是字符串.请参阅以下正确的示例:
from urllib import urlencode
print 'http://www.test.com/?' + urlencode({'q': 'testæøå'})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11283 次 |
| 最近记录: |