Python 3: urllib 在尝试取消引用字符串时返回 � 个字符

Python 3: urllib returning � characters when trying to unquote a string

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

DOC.01-PROCURA%C7%C3O.pdf

当我尝试在 Python 3 中使用 urllib.parse.unquote 或 urllib.parse.unquote_plus 时,它们 return 如下:

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

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

找到它

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'

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