Encoder/decoder URL

Encode dan decode URL

Percent-encode bagian query atau string URL utuh, lalu decode lagi. Dua mode mencerminkan encodeURIComponent dan encodeURI agar selaras dengan stack atau dokumentasi API Anda.

Pakai mode ini untuk nama dan nilai parameter query tunggal, segmen path, atau string yang akan disematkan dalam URL lebih besar. Hampir semua karakter cadangan terencode.

Alat terkait

Mengapa memakai encoder/decoder URL?

Peramban, server, dan cache memperlakukan beberapa karakter sebagai struktur — spasi, ampersand, pagar, dan teks non-ASCII perlu di-escape bila itu data, bukan sintaks. Alat ini menampilkan string persis yang akan dikirim klien HTTP.

Manfaat encoding URL yang benar

  • Transmisi aman: Karakter cadangan di konten pengguna tidak lagi merusak parser yang memecah path, query, dan fragmen.
  • Dukungan Unicode: Byte UTF‑8 dapat ditulis sebagai % sehingga teks internasional tetap aman di saluran ASCII murni.
  • API yang terduga: Selaras dengan RFC 3986 mengurangi selisih antara front-end, aplikasi seluler, dan kerangka backend.
  • Lebih sedikit error 400: Parameter yang terencode dengan benar jarang ditolak gateway ketat atau proxy terbalik.
  • Debug lebih mudah: Bandingkan string buatan Anda dengan keluaran encodeURIComponent sebelum merilis perbaikan darurat.

Cara kerja encoding URL

Percent-encoding menulis tiap byte yang tidak boleh muncul literal di segmen URL sebagai %HH dengan HH heksadesimal. Karakter yang tetap literal bergantung pada melindungi URL utuh atau komponen tunggal.

Mode di alat ini

  • Mode komponen: Mengikuti encodeURIComponent / decodeURIComponent — ideal untuk kunci, nilai, segmen path, atau teks yang akan ditempel ke query.
  • Mode URL penuh: Mengikuti encodeURI / decodeURI — untuk string yang masih memuat skema, host, garis miring, dan tanda baca query setelah transformasi.
  • Transformasi langsung: Setiap edit melalui pasangan terpilih sehingga input salah atau double-encoding langsung terlihat.

Hal yang patut diingat

Detail seperti tanda + di kiriman formulir dibanding percent-encoding sejati sering membingungkan ketika kerangka kerja berbeda.

Referensi singkat

  • Spasi umumnya %20 di query; formulir HTML dapat memakai + di badan application/x-www-form-urlencoded.
  • Hanya karakter tidak cadangan (huruf, angka, -._~) boleh tidak terencode dalam mode komponen ketat.
  • Double-encoding (mengencode string yang sudah terencode) memperpanjang URL dan dapat membingungkan server.
  • decodeURIComponent gagal jika % diikuti hex tidak lengkap; perbaiki sumber sebelum decode.
  • Nama domain internasional memakai Punycode di DNS; encoding URL menangani path dan query, bukan konversi hostname ACE.

Praktik terbaik

Encode di batas di mana teks tidak tepercaya menjadi bagian URL, dan decode sekali saat memperlakukannya lagi sebagai data.

  • Encode tiap nilai query secara terpisah, bukan mengencode seluruh URL dua kali.
  • Log input mentah terpisah dari string terencode saat debug analitik atau pengalihan.
  • Utamakan HTTPS saat berbagi URL terencode yang berisi token sensitif.
  • Validasi keluaran terdecode sebelum menyisipkan ke HTML untuk menghindari XSS dari tautan jahat.
  • Uji kedua mode jika produk mendukung deep link dari templat email atau SMS.

Kasus penggunaan ideal

  • Pengembangan web: Bangun filter pencarian, parameter UTM, dan URI pengalihan OAuth dengan percaya diri.
  • Integrasi API: Cocok dengan perilaku dokumentasi yang menyebut percent-encoding RFC 3986.
  • QA dan dukungan: Replikasi URL pelanggan tanpa menebak karakter mana yang di-escape.
  • Dokumentasi: Tunjukkan contoh sebelum/sesudah pasti untuk integrasi mitra.
  • Skrip migrasi: Bandingkan aturan escape lama dengan fungsi peramban modern.

Pertanyaan umum

Apa bedanya encoding komponen dan URL penuh?

Encoding komponen (encodeURIComponent di JavaScript) menerapkan percent-encoding hampir ke semua karakter cadangan — cocok untuk kunci atau nilai query tunggal. Encoding URL penuh (encodeURI) membiarkan pemisah seperti : / ? & = agar string tetap seperti URL yang bisa dinavigasi.

Kapan memakai decodeURIComponent vs decodeURI?

Sesuaikan dengan encoder: decodeURIComponent untuk satu komponen, decodeURI untuk string yang masih harus tampak sebagai URL lengkap dengan garis miring dan pemisah query.

Apakah data saya dikirim ke server Anda?

Tidak. Encode dan decode berjalan sepenuhnya di peramban; tidak ada unggahan.

Apa itu «percent encoding»?

Byte yang tidak boleh muncul mentah di URL ditulis sebagai % diikuti dua digit heksadesimal (misalnya spasi menjadi %20). Inilah yang RFC 3986 sebut percent-encoding.

Mengapa decode menampilkan error?

Urutan persen yang salah (jumlah hex ganjil, UTF-8 tidak valid setelah decode, atau mode tertukar) bisa memicu error. Periksa string atau coba tipe lain jika Anda mengencode URL utuh sebagai komponen.

Encoder/decoder URL — kode dan decode URL online gratis