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)
如何将 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)