如何将unicode字符串传递给urllib2.urlopen(url)函数?
我想访问带有utf-8编码网址的pdf文件:
<a href="investments-%C2%A7-73g-legal.html">Link to pdf</a>
其中%C2%A7代表部分符号:§
如果我将此unicode url字符串传递给urlopen方法,则会抛出异常:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa7' in position 105: ordinal not in range(128)
如果我忽略编码错误:url.encode("ascii",errors='ignore')
链接地址已无效。
有人能给我一个如何解决这个问题的提示吗?
非常感谢
答案 0 :(得分:1)
沿着这些行尝试一些东西,在b中,你会找到一个适合urllib2的utf8字符串(你必须用一个有意义的位置完成它,尽管......)。顺便说一句,打印已解码的 b 会显示§
import urllib
import urllib2
a='investments-%C2%A7-73g-legal.html'
b=urllib.unquote(a)
print (b.decode('utf8'))
urllib2.urlopen('http://localhost/' + b)