tooliv

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.

Pertanyaan yang Sering Diajukan

Mengapa URL encoding diperlukan?

Karakter khusus dalam URL (spasi, &, =, dll.) harus dikodekan agar ditafsirkan dengan benar.

Apa itu percent encoding?

Karakter diganti dengan %XX di mana XX adalah nilai heksadesimal.

Haruskah seluruh URL dikodekan?

Tidak, hanya kodekan nilai parameter, bukan struktur URL.

Alat Terkait