Kode URL
Mengkodekan dan mendekodekan komponen URL
Apa itu URL / pengkodean persentase?
URL hanya dapat berisi sekumpulan kecil karakter ASCII. Apa pun yang lain — spasi, huruf beraksen, emoji, karakter yang dicadangkan seperti `&`, `=`, `?` — harus dikodekan persentase sebagai `%` diikuti oleh dua digit heksadesimal yang mewakili byte UTF-8. Sebuah spasi menjadi `%20`, `é` menjadi `%C3%A9`, tanda tanya menjadi `%3F`.
Gunakan pengkodean 'komponen' saat melarikan diri dari satu bagian (nilai parameter kueri, segmen jalur) — setara dengan `encodeURIComponent` JavaScript. Gunakan pengkodean 'URL penuh' saat melarikan diri dari seluruh URL yang sudah memiliki pemisah struktural yang ingin Anda pertahankan — setara dengan `encodeURI`.
Kasus penggunaan
- Membangun string kueri — kodekan input pengguna sebelum dimasukkan ke dalam parameter `?q=`.
- Memeriksa log server — dekode URL yang rusak untuk membaca jalur asli (`/Users/%E4%B8%AD%E6%96%87/...`).
- Debug pengalihan OAuth — tempel `redirect_uri` untuk melihat dengan tepat apa yang didekodekan oleh callback OAuth.
- Baca contoh curl — salin URL yang dikodekan persentase dari tutorial dan dekode untuk memahami permintaan.
Contoh
| Input | Hasil |
|---|---|
| hello world & friends | hello%20world%20%26%20friends |
| café/menu?id=123 | caf%C3%A9%2Fmenu%3Fid%3D123 (component) or caf%C3%A9/menu?id=123 (full URL) |
Pertanyaan yang sering diajukan
Apa perbedaan antara encodeURI dan encodeURIComponent?
`encodeURI` membiarkan karakter struktural URL (`:`, `/`, `?`, `#`, `&`, `=`) tidak tersentuh — untuk mengkodekan seluruh URL. `encodeURIComponent` juga melarikan diri dari karakter tersebut — untuk mengkodekan satu bagian yang masuk ke dalam URL.
Bisakah itu menangani karakter non-ASCII?
Ya. Karakter di luar ASCII dikodekan sebagai byte UTF-8 mereka (1–4 byte), masing-masing diwakili sebagai `%XX`.
Apakah `+` diartikan sebagai spasi saat mendekode?
Tidak. Alat ini menggunakan dekode URL standar, yang membiarkan `+` tidak berubah. Aturan `+` berarti spasi khusus untuk data formulir `application/x-www-form-urlencoded`, dan alat ini tidak memiliki mode dekode formulir terpisah.
Mengapa URL saya rusak setelah dikodekan?
Anda telah mengkodekan karakter struktural (`:`, `/`, `?`, `#`) yang perlu tetap literal. Alat ini selalu melakukan pengkodean komponen (`encodeURIComponent`), yang menghindari mereka — jadi hanya kodekan nilai kueri individu atau segmen jalur, bukan seluruh URL.
Apakah ada yang diunggah?
Tidak — pengkodean dan dekode berjalan sepenuhnya di browser Anda.
