Apa itu Encoding URL? Penjelasan Lengkap tentang Encoding Persen
Jawaban Cepat
Pengkodean URL (pengkodean persen) menggantikan karakter tidak aman dalam URL dengan % diikuti oleh dua digit hex. Misalnya, spasi menjadi %20, & menjadi %26. Ini memastikan URLs dapat ditransmisikan tanpa ambiguitas. Gunakan Encoder dan Decoder URL gratis kami untuk mengonversi di browser Anda.
Perkenalan
Pengkodean URL, juga disebut pengkodean persen, adalah mekanisme untuk mengkodekan karakter khusus dalam URL sehingga dapat dikirimkan dengan aman melalui internet. URLs hanya dapat berisi sekumpulan karakter ASCII terbatas — huruf, angka, dan beberapa karakter khusus. Karakter lainnya (spasi, tanda kutip, huruf non-ASCII) harus dikodekan sebagai tanda persen (%) diikuti dengan dua digit heksadesimal yang mewakili nilai byte karakter. Pengkodean URL ditentukan oleh RFC 3986.
Langkah demi Langkah
-
Pahami karakter mana yang perlu dikodekan
Karakter yang tidak dicadangkan (A-Z, a-z, 0-9, -, _, ., ~) tidak memerlukan pengkodean. Karakter yang dicadangkan (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) memiliki arti khusus di URLs dan harus dikodekan saat digunakan sebagai data. Semua karakter lainnya (spasi, tanda kutip, non-ASCII) harus dikodekan.
-
Pelajari mekanisme pengkodean
Setiap karakter yang memerlukan pengkodean dikonversi ke urutan byte UTF-8, kemudian setiap byte direpresentasikan sebagai %XX di mana XX adalah nilai hex. Spasi (0x20) → %20. Karakter non-ASCII 'é' (UTF-8: 0xC3 0xA9) → %C3%A9.
-
Bedakan encodeURI vs encodeURIComponent
encodeURI() mengkodekan URL penuh tetapi mempertahankan karakter khusus (:/?&=) yang merupakan bagian dari struktur URL. encodeURIComponent() mengkodekan semuanya kecuali karakter yang tidak dicadangkan — gunakan untuk nilai parameter kueri di mana karakter yang dicadangkan adalah data, bukan struktur.
-
Dekode URLs yang dikodekan persen
Penguraian kode membalikkan pengkodean: %20 → spasi, %C3%A9 → é. Gunakan decodeURI() untuk URLs lengkap dan decodeURIComponent() untuk nilai parameter kueri. Kesalahan lemparan urutan escape tidak valid (seperti %ZZ).
Contoh
Mengkodekan spasi
Masukan: hello world
Keluaran: hello%20world
Mengkodekan teks non-ASCII
Masukan: café
Keluaran: caf%C3%A9
Enkode nilai parameter kueri
Masukan: name=John Doe & Co.
Keluaran: name%3DJohn%20Doe%20%26%20Co.
Masalah Umum
- Mengkodekan seluruh URL ketika hanya nilai yang memerlukan pengkodean —mengkodekan nilai parameter kueri, bukan struktur URL (://?&=).
- Pengkodean ganda —jika URL sudah dikodekan, pengkodean lagi menghasilkan %2520, bukan %20. Dekode terlebih dahulu jika tidak yakin apakah sudah dikodekan.
- Salah menggunakan encodeURI vs encodeURIComponent —encodeURI mempertahankan URL karakter struktur; encodeURIComponent mengkodekannya. Gunakan yang terakhir untuk nilai parameter kueri.
- Urutan escape tidak valid —%ZZ atau satu % di akhir tidak valid dan akan memunculkan kesalahan saat didekodekan.
Kiat
- Selalu enkode nilai parameter kueri yang mungkin berisi spasi, karakter khusus, atau input pengguna untuk mencegah injeksi URL.
- Gunakan encodeURIComponent() untuk nilai parameter kueri, dan encodeURI() untuk URLs lengkap yang hanya perlu mengkodekan karakter tidak aman.
- Pengkodean URL bukanlah enkripsi —siapa pun dapat memecahkan kodenya. Jangan pernah menggunakannya untuk menyembunyikan data sensitif.
- Gunakan Encoder dan Decoder URL kami untuk konversi pribadi secara instan di browser Anda.