Fungsi Urllib Parse Unquite Python untuk URL Decoding

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 fungsi urllib.parse.unquote_plus() alih-alih unquote() biasa.