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

时间:2018-12-12 19:54:15

标签: python-3.x unicode character-encoding urllib

我正试图取消对通过Selenium从href检索的字符串的引用:

input.replaceAll("(Y = +)", "$1-").replaceAll("(Y = +)--", "$1"));

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

DOC.01-PROCURA%C7%C3O.pdf

我如何摆脱这些字符?它应该返回'DOC.01-PROCURA��O.pdf',因为Selenium会下载具有该文件名的pdf文件,稍后我会通过DOC.01-PROCURAÇÃO.pdf找到它。

1 个答案:

答案 0 :(得分:0)

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'

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