URL encoder / decoder
Enkode teks ke format URL-aman dengan encoding persen atau dekode URL terenkode ke teks yang dapat dibaca. Juga mengurai URL lengkap menjadi skema, host, jalur, dan parameter.
Apa itu URL encoding?
URL encoding (percent-encoding) mengganti karakter yang tidak aman di URL dengan tanda persen diikuti nilai hex-nya. Spasi menjadi %20, ampersand menjadi %26, dan karakter non-ASCII seperti teks Jepang mendapat encoding multi-byte. Ini memastikan URL valid dan bisa di-parse oleh browser dan server. URL parser di bawah encoder memecah URL apa pun menjadi komponen-komponennya untuk inspeksi mudah.
encodeURI vs encodeURIComponent
encodeURI() meng-encode URL penuh tapi mempertahankan karakter yang valid dalam sintaks URL (://?#&=). encodeURIComponent() meng-encode semua kecuali A-Z, a-z, 0-9, dan beberapa simbol (-_.!~*'()). Pakai encodeURIComponent() untuk value parameter individual dan encodeURI() untuk URL penuh. Alat ini mendukung kedua mode.
URL parsing
Parser di bawah encoder memecah URL apa pun menjadi komponen-komponennya: protocol, host, port, path, query parameter, dan fragment. Setiap query parameter ditampilkan sebagai pasangan key-value. Berguna untuk debug endpoint API, verifikasi URL redirect, dan memahami query string kompleks sekilas.
Untuk encoding Base64, gunakan Base64 encoder / decoder kami.
Penggunaan Umum
- Konstruksi string kueri: Enkode istilah pencarian, filter, atau input formulir yang diberikan pengguna sebelum menambahkannya ke URL untuk mencegah injeksi dan permintaan yang rusak.
- Pembangunan URL webhook dan redirect: Enkode parameter URL callback dalam alur OAuth dan webhook agar bertahan melalui transfer aman melalui rantai redirect pihak ketiga.
- Pelacakan tautan kampanye email: Enkode parameter UTM dan URL tujuan di dalam tautan pelacakan untuk memastikan klien email tidak merusaknya.
- Debugging endpoint API: Decode URL yang dikodekan persen dari log server atau pesan kesalahan untuk membaca parameter asli dalam bentuk yang dapat dibaca manusia.
- Pembuatan URL internasional: Enkode karakter non-ASCII (huruf beraksen, Cina, Arab, Hindi) dalam URL untuk digunakan dalam aplikasi web internasional.
- Encoding jalur file URL: Enkode nama file yang mengandung spasi atau karakter khusus agar bekerja dengan benar sebagai segmen jalur URL.
- Berbagi tautan media sosial: Enkode URL sebelum menanamkannya dalam tag meta media sosial untuk mencegah platform memotong atau salah menafsirkan parameter.
FAQ
Mengapa spasi menjadi %20 di URL?
Spasi bukan karakter URL yang valid — URL dibatasi pada subset ASCII yang aman. %20 adalah bentuk percent-encoded dari spasi (0x20 di ASCII). Pada submit form HTML dengan application/x-www-form-urlencoded, spasi juga bisa muncul sebagai karakter +, tapi %20 adalah standar di dalam path URL atau nilai query.
Apa beda URL encoding dan Base64?
URL encoding membuat teks URL-safe dengan meng-escape karakter khusus — utamanya untuk kompatibilitas dengan sintaks URL. Base64 mengubah data biner ke teks ASCII, utamanya untuk mengirim biner lewat kanal teks saja. Alat yang berbeda untuk masalah yang berbeda, meskipun kadang digabungkan (Base64 dulu, lalu URL-encode).
Apakah saya perlu meng-encode seluruh URL atau cukup parameter-nya?
Biasanya cukup parameter saja. Pakai mode "Encode component" untuk nilai query individual (default). Pakai "Encode URL penuh" hanya saat Anda bekerja dengan URL yang mengandung karakter non-ASCII di path atau hostname dan perlu meng-escape sambil mempertahankan struktur URL.
Apakah URL encoder mengirim data saya ke mana pun?
Tidak. Semua proses encoding dan decoding berjalan sepenuhnya di browser Anda. URL dan data teks Anda tidak pernah meninggalkan perangkat Anda.
Apa perbedaan antara encodeURI dan encodeURIComponent?
encodeURI mengodekan URL penuh dan mempertahankan karakter seperti /, :, dan ? yang memiliki makna struktural URL. encodeURIComponent mengodekan nilai tunggal dan menggantikan karakter tersebut juga — gunakan untuk nilai query string individual.
Dalam Angka
- RFC 3986 (2005) mendefinisikan 18 karakter reserved yang harus dikodekan persen dalam URL di luar peran sintaksisnya
- Untuk kompatibilitas browser maksimum, URL tidak boleh melebihi 2.048 karakter dalam praktik
- Semua karakter non-ASCII (titik kode di atas 127) harus dikodekan UTF-8, kemudian dikodekan persen sebelum muncul dalam URL
- Nama domain yang diinternasionalisasi menggunakan pengkodean Punycode — münchen.de menjadi xn--mnchen-3ya.de