Fungsi urllib.parse.unquote() dalam bahasa pemrograman Python digunakan untuk melakukan proses URL decoding, yaitu mengubah string yang di-encode secara persentase (percent-encoded) kembali menjadi karakter teks aslinya. Fungsi ini merupakan bagian dari modul bawaan pustaka standar Python, yaitu urllib.parse, sehingga Anda tidak perlu memasang pustaka pihak ketiga melalui pip.
Proses percent-encoding sering dijumpai pada URL web, di mana karakter khusus seperti spasi, garis miring, atau tanda baca diubah menjadi format representasi heksadesimal yang diawali dengan tanda persen (contohnya spasi menjadi %20). urllib.parse.unquote() mengambil string hasil encode tersebut dan mengembalikannya ke bentuk yang dapat dibaca manusia.
Sintaks Dasar dan Penggunaan
Berikut adalah sintaks dasar pemanggilan fungsi unquote di dalam skrip Python:
import urllib.parse
encoded_string = "Belajar%20Python%20Pemrograman%2FDasar%3F"
decoded_string = urllib.parse.unquote(encoded_string)
print(decoded_string)
# Output: Belajar Python Pemrograman/Dasar?
Tabel Perbandingan Modul Urllib Parse (Quote vs Unquote)
| Fungsi | Tujuan Utama | Contoh Masukan | Contoh Keluaran |
|---|---|---|---|
urllib.parse.quote |
Mengubah teks biasa menjadi URL-safe percent-encoded string. | Halo Dunia! |
Halo%20Dunia%21 |
urllib.parse.unquote |
Mengubah percent-encoded string kembali ke teks biasa. | Halo%20Dunia%21 |
Halo Dunia! |
urllib.parse.quote_plus |
Mengubah teks menjadi format URL, spasi diganti tanda plus (+). | Cari Buku Python |
Cari+Buku+Python |
urllib.parse.unquote_plus |
Mengubah string yang mengandung tanda plus (+) dan persentase. | Cari+Buku+Python |
Cari Buku Python |
Penanganan Karakter Khusus dan Encoding Berbeda
Secara default, urllib.parse.unquote() menggunakan standar pengkodean UTF-8. Jika Anda bekerja dengan data lama yang menggunakan set karakter lain seperti latin-1, Anda dapat menentukan parameter encoding dan errors secara eksplisit.
import urllib.parse
# Contoh dengan parameter encoding spesifik
encoded_str = "Hello%20World"
decoded = urllib.parse.unquote(encoded_str, encoding='utf-8', errors='replace')
print(decoded)
Troubleshooting Masalah Umum
Beberapa kendala yang sering ditemui pengembang saat menggunakan fungsi unquote meliputi:
- TypeError: Terjadi jika argumen yang dimasukkan bukan tipe data string atau bytes. Pastikan data yang dilewatkan sudah dalam format yang benar.
- Karakter Spasi Menjadi Tanda Plus (+): Jika string Anda menggunakan tanda
+untuk merepresentasikan spasi (biasanya pada data query string form HTML), gunakan fungsiurllib.parse.unquote_plus()alih-alihunquote()biasa.