首页 > 解决方案 > Python 3:urllib 在尝试取消引用字符串时返回�字符

问题描述

我正在尝试取消引用通过 Selenium 从 href 检索到的字符串:

DOC.01-PROCURA%C7%C3O.pdf

当我尝试在 Python 3 中使用 urllib.parse.unquote 或 urllib.parse.unquote_plus 时,它们都返回以下内容:

'DOC.01-PROCURA��O.pdf'

我如何摆脱这些�字符?它应该返回DOC.01-PROCURAÇÃO.pdf,因为 Selenium 下载了一个具有此文件名的 pdf 文件,我稍后将通过os.path.exists.

标签: python-3.xunicodecharacter-encodingurllib

解决方案


urllib.parse.unquote默认解码为 UTF-8。在这种情况下,Windows-1252有效:

>>> s = 'DOC.01-PROCURA%C7%C3O.pdf'
>>> urllib.parse.unquote(s,'Windows-1252')
'DOC.01-PROCURAÇÃO.pdf'

检查数据来自的页面的编码。


推荐阅读