Cara Peratus-Mengekod Parameter URL Dengan Berkesan dalam Python
Apabila cuba mengekod peratus parameter URL menggunakan modul urllib Python, anda mungkin menghadapi isu dengan pengendalian aksara khas dan sokongan Unicode. Untuk menangani cabaran ini, pertimbangkan untuk menggunakan urllib.parse.quote, yang menawarkan fleksibiliti dan fungsi yang lebih besar.
Mengendalikan Watak Khas
Fungsi petikan modul urllib tidak mengekod garis miring ke hadapan ("/") kepada "/," yang boleh mengganggu penormalan OAuth. Untuk membetulkannya, nyatakan rentetan kosong untuk parameter selamat:
<code class="python">import urllib.parse encoded_parameter = urllib.parse.quote("/test", safe="") # Output: %2Ftest</code>
Menyokong Aksara Unikod
Untuk mengendalikan aksara Unikod, mengekodkannya sebagai UTF-8 sebelum peratus -pengekodan:
<code class="python">unicode_parameter = u"Müller".encode("utf8") encoded_parameter = urllib.parse.quote(unicode_parameter) # Output: %C3%9Cller</code>
Nyahkod parameter yang dikodkan menggunakan UTF-8:
<code class="python">decoded_parameter = urllib.parse.unquote(encoded_parameter).decode("utf8") # Output: Müller</code>
Alternatif untuk Dipertimbangkan
Pertimbangkan menggunakan urllib.parse .urlencode untuk mengekod berbilang parameter sebagai rentetan pertanyaan. Fungsi ini secara automatik mengekod peratusan parameter dan mengendalikan aksara khas serta sokongan Unicode.
Keserasian Python 2
Untuk Python 2, modul urllib tidak mengendalikan Unicode dengan secukupnya watak. Sebagai penyelesaian, anda boleh mengekodnya sebagai UTF-8 sebelum menggunakan petikan:
<code class="python">query = urllib.quote(u"Müller".encode("utf8")) # Output: %C3%9Cller</code>
Atas ialah kandungan terperinci Bagaimana Mengekodkan Parameter URL Peratusan dengan Betul dalam Python: Menangani Watak Khas dan Isu Unikod?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!