Python urllib2 和 urlopen 带有 utf-8 标志

Python urllib2 and urlopen with utf-8 signs

如何将 unicode 字符串传递给 urllib2.urlopen(url) 函数?

我想访问一个 utf-8 编码的 pdf 文件url:

<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') link 地址不再有效。

谁能告诉我如何解决这个问题?

非常感谢

沿着这些方向尝试一些东西,在 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)