擅长:python、mysql、java
<p>我想你是在把多个问题卷积成1。在</p>
<p>首先,你问这个问题的唯一原因是你想去掉文件名尾部的引号,它似乎被引用了两次。在</p>
<p>其次,文件名,即使是双引号,也会导致非utf-8编码的数据,并且不可打印。在</p>
<p>第三,你似乎不了解URL格式。在</p>
<p>最后,你不明白引号和unquote实际上在做什么。在</p>
<p>在urllib.quote()和urllib.unquote()只用于URL的path_info部分,即<a href="http://file.fir.net/" rel="nofollow">http://file.fir.net/</a>之后的所有内容。在</p>
<p>在urllib.quote()将字符串参数中“在URL中不安全”的所有内容替换为百分比编码。表示每一个字符都会引起问题(例如:~[SPACE]等),使用十六进制格式的%BYTES。在</p>
<p>由于[:]在URL的路径部分是不安全的,quote()将用它的百分比编码对其进行编码。在</p>
<p>所有这些都意味着您不应该将整个URL直接传递到quote()中,除非您碰巧想将URL编码到URL的path_info部分。在</p>
<p>解决问题的步骤如下:</p>
<ol>
<li>修复文件名编码以使用可打印的内容来帮助您调试。在</li>
<li>在urllib.unquote()一次以获取正常的URL。在</li>
<li>当您得到未加引号的URL时,将其传递给urlparse.urlparse()首先将组件分成适当的部分。在</li>
<li>在urllib.unquote()文件名部分。在</li>
<li>现在您可以检索原始文件名,您可以继续做任何您需要做的事情。在</li>
</ol>
<p>参考文献:</p>
<p><a href="http://docs.python.org/library/urlparse.html" rel="nofollow">http://docs.python.org/library/urlparse.html</a></p>
<p><a href="http://docs.python.org/library/urllib.html" rel="nofollow">http://docs.python.org/library/urllib.html</a></p>