Encoding URL
Encode & decode URL
Input
Hasil
URL Encoding: Kenapa Browser Ubah Spasi Jadi %20
Pernah perhatiin %20 sama %3D yang aneh-aneh di URL? Itu URL encoding (juga disebut percent encoding). URL cuma terima set karakter yang terbatas -- huruf, angka, dan beberapa simbol doang. Sisanya -- spasi, huruf beraksen, karakter khusus -- harus dikonversi ke format %XX biar bisa jalan aman di web.
Kenapa URL Nggak Bisa Pakai Karakter Sembarangan
URL ikut spec bernama RFC 3986, dan ketat banget soal apa yang boleh: huruf, angka, dan beberapa simbol kayak strip dan titik. Udah gitu aja. Karakter kayak & dan = udah punya tugas di URL -- mereka misahin query parameter. Jadi kalau data kamu beneran mengandung & atau =, harus di-encode atau server bakal bingung mana akhir satu parameter dan mana awal yang berikutnya. Sama juga berlaku buat spasi, karakter non-Latin, dan pada dasarnya apa aja yang bukan ASCII biasa.
Karakter yang Paling Sering Di-encode
Spasi jadi %20 (atau + di beberapa konteks). Simbol & jadi %26, = jadi %3D, dan ? jadi %3F. Karakter non-ASCII kayak huruf CJK di-encode sebagai UTF-8 dulu, terus setiap byte jadi kode %XX sendiri -- jadi satu karakter bisa jadi tiga atau lebih urutan %XX. Forward slash (/) itu pemisah path, jadi cuma di-encode kalau muncul di dalam nilai parameter, bukan di path URL itu sendiri.
Tips URL Encoding buat Developer
Aturan emas: encode nilai parameter, bukan seluruh URL. Di JavaScript, encodeURIComponent() handle nilai dengan sempurna; encodeURI() buat URL lengkap dan biarin karakter struktural tetap utuh. Developer Python pakai urllib.parse.quote(). Hati-hati sama double encoding -- terjadi waktu kamu nggak sengaja encode string yang udah di-encode, jadi %20 berubah jadi %2520. Dan selalu encode nilai parameter di API call, karena input user bisa berisi apa aja.