Cara mengkodekan dan mendekode URL
Jika Anda pernah melihat %20 di URL di mana seharusnya ada spasi, atau %C3%A9 di mana karakter beraksen seharusnya berada, Anda telah menemui pengkodean URL. Ini adalah blok bangunan dasar web, dan memahaminya membantu men-debug tautan yang rusak, masalah API, dan pengiriman formulir.
Apa yang dilakukan pengkodean URL
URL hanya dapat berisi sekumpulan karakter aman: huruf (A-Z, a-z), angka (0-9), dan beberapa karakter khusus (-, _, ., ~). Yang lainnya — spasi, aksen, emoji, simbol seperti &, =, #, ? — harus dikonversi ke format yang aman.
Pengkodean URL (juga disebut percent-encoding) menggantikan karakter tidak aman dengan % diikuti nilai heksadesimal byte:
| Karakter | Dikodekan |
|---|---|
| Spasi | %20 |
| & | %26 |
| = | %3D |
| # | %23 |
| ? | %3F |
| / | %2F |
| @ | %40 |
Kapan pengkodean URL diperlukan
- Parameter kueri dengan karakter khusus — kueri seperti
harga > 100 & kategori = sepatumemerlukan pengkodean untuk berfungsi dalam URL - Karakter non-Latin dalam URL — nama, kota, atau konten dalam bahasa lain harus dikodekan
- Permintaan API — saat membangun panggilan API secara manual, nilai parameter sering perlu pengkodean
- Debugging — ketika URL tidak berfungsi, mendekodenya mengungkap nilai sebenarnya
Cara mengkodekan dan mendekode
- Pilih kodekan atau dekode — pilih arah. Gunakan encodeURIComponent untuk parameter kueri atau encodeURI untuk URL lengkap.
- Tempel masukan Anda — masukkan teks atau URL. Hasil diperbarui secara instan.
- Salin keluaran — gunakan hasilnya dalam kode, permintaan API, atau peramban Anda.
Tips
- Kodekan nilai, bukan seluruh URL — jika Anda mengkodekan seluruh URL, garis miring dan titik dua yang menyusun URL juga akan dikodekan, yang merusaknya. Hanya kodekan nilai di dalam parameter kueri.
- Pengkodean ganda — mengkodekan string yang sudah dikodekan menghasilkan hal seperti
%2520(%menjadi%25). Jika URL Anda terlihat salah, periksa apakah ada yang dikodekan dua kali. - Dekode untuk debug — ketika permintaan API gagal atau URL tampak tidak terbaca, dekode untuk melihat nilai sebenarnya. Ini sering mengungkap masalah dengan segera.
- Gunakan fungsi bawaan bahasa Anda — dalam kode produksi, selalu gunakan
encodeURIComponent()(JavaScript),urllib.parse.quote()(Python), atauURLEncoder.encode()(Java) alih-alih mengkodekan dengan tangan.
Pertanyaan yang sering diajukan
Apa perbedaan antara encodeURI dan encodeURIComponent?
encodeURI mempertahankan karakter yang valid dalam struktur URL (garis miring, titik dua, tanda tanya). encodeURIComponent mengkodekan semuanya kecuali huruf, angka, dan beberapa karakter aman. Gunakan encodeURIComponent untuk nilai parameter kueri, encodeURI untuk URL lengkap.
Mengapa spasi menjadi %20 atau +?
Dalam pengkodean URL, spasi menjadi %20. Dalam data formulir (application/x-www-form-urlencoded), spasi menjadi +. Keduanya valid dalam konteksnya, tetapi %20 adalah standar universal untuk URL.
Haruskah saya mengkodekan URL secara manual?
Dalam sebagian besar kasus, bahasa atau framework Anda menangani pengkodean secara otomatis. Pengkodean manual berguna saat Anda membangun URL dengan tangan, men-debug permintaan API, atau bekerja dengan string kueri yang berisi karakter khusus.
Apakah data saya dikirim ke server?
Tidak. Semua pengkodean dan pendekodean terjadi di peramban Anda.