【发布时间】:2015-12-27 04:44:04
【问题描述】:
我正在尝试从requests 获取原始网址。这是我目前所拥有的:
res = requests.get(...)
url = urllib.unquote(res.url).decode('utf8')
然后我收到一条错误消息:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 60-61: ordinal not in range(128)
我请求的原始网址是:
https://www.microsoft.com/de-at/store/movies/american-pie-pr\xc3\xa4sentiert-nackte-tatsachen/8d6kgwzl63ql
当我尝试打印时会发生以下情况:
>>> print '111', res.url
111 https://www.microsoft.com/de-at/store/movies/american-pie-pr%C3%A4sentiert-nackte-tatsachen/8d6kgwzl63ql
>>> print '222', urllib.unquote( res.url )
222 https://www.microsoft.com/de-at/store/movies/american-pie-präsentiert-nackte-tatsachen/8d6kgwzl63ql
>>> print '333', urllib.unquote(res.url).decode('utf8')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 60-61: ordinal not in range(128)
为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
你用的是什么操作系统?
-
似乎 OP 重复了这个问题:stackoverflow.com/questions/34477799/…
标签: python unicode python-requests urlencode