Cara menggunakan
- Pilih Enkode atau Dekode.
- Pilih Komponen untuk satu nilai (misalnya satu parameter kueri) atau URL lengkap untuk seluruh alamat.
- Ketik atau tempel teks Anda. Hasilnya langsung muncul di sebelah kanan (atau di bawah pada ponsel).
- Salin hasilnya, atau gunakan “Gunakan output sebagai input” untuk membalikkan operasi dan memeriksa hasilnya.
Cara kerja
URL hanya boleh berisi sekumpulan karakter ASCII yang terbatas. Karakter lainnya, termasuk spasi, huruf beraksen, dan emoji, ditulis sebagai escape persen: karakter dikonversi menjadi byte UTF-8, lalu setiap byte ditulis sebagai % diikuti dua digit heksadesimal. Spasi menjadi %20, é menjadi %C3%A9, dan € menjadi %E2%82%AC.
Mode Komponen menggunakan encodeURIComponent dan decodeURIComponent JavaScript. Mode ini meng-escape setiap karakter yang memiliki makna khusus dalam URL, termasuk / ? # & = + : dan @, sehingga hasilnya aman ditempatkan di dalam nilai kueri atau satu segmen path. Hanya A–Z, a–z, 0–9, dan - _ . ! ~ * ' ( ) yang tidak diubah.
Mode URL lengkap menggunakan encodeURI dan decodeURI. Mode ini menganggap input sudah berupa URL lengkap dan membiarkan karakter yang dicadangkan ; , / ? : @ & = + $ # apa adanya agar alamat tetap berfungsi. Saat mendekode, decodeURI juga membiarkan escape untuk karakter yang dicadangkan tersebut: %2F tetap menjadi %2F karena mengubahnya menjadi / akan mengubah makna URL.
Opsi data formulir mengikuti application/x-www-form-urlencoded, format yang digunakan browser saat mengirim formulir HTML: spasi ditulis sebagai +, bukan %20. Saat mendekode dengan opsi ini, setiap + menjadi spasi; tanda plus yang sebenarnya harus ditulis sebagai %2B.
Input yang tidak valid tidak akan pernah dihapus. Jika % tidak diikuti dua digit heksadesimal, atau rangkaian escape tidak membentuk UTF-8 yang valid, alat ini menunjukkan letak masalah dan mempertahankan teks Anda agar bisa diperbaiki.
Contoh
Memasukkan nilai ke dalam string kueri
Untuk menelusuri “Rock & Roll” di https://example.com/search?q=…, enkode hanya nilainya dalam mode Komponen: Rock%20%26%20Roll. Tanpa pengodean, & akan mengakhiri parameter q dan memulai parameter baru bernama “ Roll”.
Memperbaiki URL yang berisi spasi dan aksen
Dalam mode URL lengkap, https://example.com/menu/crème brûlée.html menjadi https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. Garis miring dan titik dua tetap seperti semula, sehingga tautan tetap berfungsi.
Membaca data formulir dari log
Log server menampilkan name=Jane+Doe&city=S%C3%A3o+Paulo. Dekode dalam mode Komponen dengan mengaktifkan “Anggap + sebagai spasi” untuk membaca name=Jane Doe&city=São Paulo.
Pertanyaan yang sering diajukan
Apa perbedaan encodeURI dan encodeURIComponent?
encodeURIComponent meng-escape karakter yang memisahkan bagian-bagian URL (/ ? # & = + : @ dan lainnya), sehingga digunakan untuk satu bagian URL. encodeURI membiarkan karakter tersebut apa adanya, sehingga digunakan untuk URL lengkap. Menggunakan encodeURI pada nilai kueri adalah kesalahan umum: & atau = di dalam nilai tidak akan di-escape dan dapat merusak string kueri.
Apakah spasi sebaiknya ditulis sebagai %20 atau +?
Di path URL, spasi selalu ditulis sebagai %20. Dalam string kueri, keduanya dapat digunakan: %20 valid di mana saja, sedangkan + berarti spasi hanya dalam data berformat formulir (application/x-www-form-urlencoded), seperti yang digunakan formulir HTML dan banyak kerangka kerja server untuk membaca string kueri. Jika ragu, gunakan %20.
Mengapa terjadi kesalahan saat mendekode?
Dekode gagal jika tanda % tidak diikuti dua digit heksadesimal (misalnya “50% off”), atau jika byte hasil escape bukan UTF-8 yang valid. Ini biasanya berarti teks dienkode dengan set karakter lama seperti Latin-1 (é sebagai %E9, bukan %C3%A9). Pesan kesalahan menunjukkan posisi masalah.
Mengapa %2F tidak berubah menjadi garis miring dalam mode URL lengkap?
decodeURI sengaja mempertahankan escape untuk karakter yang dicadangkan seperti / ? # & dan =, karena mendekodenya dapat mengubah cara URL dipisahkan menjadi beberapa bagian. Gunakan mode Komponen untuk mendekode semua escape.
Karakter apa yang tidak pernah dienkode?
Kedua mode membiarkan A–Z, a–z, 0–9, dan - _ . ! ~ * ' ( ) apa adanya. Mode URL lengkap juga membiarkan ; , / ? : @ & = + $ dan # apa adanya.
Privasi
Proses penyandian dan penguraian berjalan sepenuhnya di browser Anda menggunakan fungsi JavaScript bawaan. Teks dan URL Anda tidak diunggah, disimpan, atau disertakan dalam analitik.