【发布时间】:2013-03-28 03:25:15
【问题描述】:
我尝试访问带有重音符号的 URL,但没有成功:
#!/usr/bin/python3.3
# -*- coding: utf-8 -*-
import urllib.request
response = urllib.request.urlopen("http://nominatim.openstreetmap.org/search.php?city=Lévis&format=json")
content = response.read()
print(content)
当我执行此代码时,我会返回此错误
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 22: ordinal not in range(128)
所以我试试这个
response = urllib.request.urlopen("http://nominatim.openstreetmap.org/search.php?city=Lévis&format=json".encode("UTF-8"))
但还是报错
AttributeError: 'bytes' object has no attribute 'timeout'
你知道我的错误在哪里吗?
【问题讨论】:
-
网址cannot contain arbitrary Unicode。您需要转义违规字符in some way。
标签: python encoding character-encoding python-3.x urllib