在 Python 中編碼 URL 參數
URL 通常包含需要編碼的參數,以防止錯誤並保持相容性。在 Python 中,urllib.quote() 函式通常用於此目的。但是,它有一定的限制:
使用urllib.parse.quote() 改進編碼
Python 3 文件建議使用urllib.parse.quote():
Python 3 文件建議使用urllib.parse.quote():<code class="python">urllib.parse.quote(string, safe='/', encoding=None, errors=None)</code>
<code class="python">>>> import urllib.parse >>> urllib.parse.quote('/test', safe='') '%2Ftest'</code>此函數透過允許附加字元的規範保持不帶引號來提供更好的編碼。缺省情況下,安全參數包含“/”。為安全傳遞空字串解決了第一個問題:
Unicode 處理
<code class="python">>>> query = urllib.quote(u"Müller".encode('utf8')) >>> print urllib.unquote(query).decode('utf8') Müller</code>Unicode 支援的第二個問題已在 Python 3 中修復。對於Python 2 ,您可以將Unicode 字串編碼為UTF-8 來解決此問題:
替代方法:urlencode()
<code class="python">>>> import urllib.parse >>> params = urllib.parse.urlencode({'name': 'John Doe'}) 'name=John+Doe'</code>為了方便起見,請考慮使用urlencode( )而不是手動對每個參數進行百分比編碼。它自動編碼鍵值對,支援 Unicode 和自訂分隔符號:
以上是如何在 Python 中正確編碼 URL 參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!