Cara mengkodekan dan mendekode URL

· 3 menit baca

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

Cara mengkodekan dan mendekode

  1. Pilih kodekan atau dekode — pilih arah. Gunakan encodeURIComponent untuk parameter kueri atau encodeURI untuk URL lengkap.
  2. Tempel masukan Anda — masukkan teks atau URL. Hasil diperbarui secara instan.
  3. Salin keluaran — gunakan hasilnya dalam kode, permintaan API, atau peramban Anda.

Tips

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.