Enkode / Dekode URL
Enkode persen atau dekode komponen URL dan string kueri
Tentang alat ini
Karakter seperti spasi, ampersand, dan huruf non-ASCII tidak boleh muncul mentah-mentah di dalam URL, jadi semuanya dienkode persen: spasi menjadi %20, dan 你 menjadi %E4%BD%A0. Alat ini mengenkode teks agar aman dimasukkan ke URL dan mendekode string berescape persen kembali menjadi teks yang terbaca, termasuk konvensi + untuk spasi yang dipakai di string kueri.
Ada dua mode pengodean karena JavaScript sendiri punya dua: mode komponen (encodeURIComponent) meng-escape semua yang bisa memotong sebuah URL, yang Anda inginkan untuk satu nilai di dalam string kueri; mode URI penuh (encodeURI) mempertahankan karakter struktural seperti /, ?, dan &, untuk saat Anda mengenkode satu URL utuh yang harus tetap bisa dibuka.
Pendekodeannya ketat terhadap urutan % yang cacat — sebuah % sendirian atau %ZZ dilaporkan sebagai galat alih-alih diloloskan diam-diam, persis seperti yang akan dilakukan browser dan server.
Pertanyaan yang sering diajukan
- Kapan memakai mode komponen dan kapan mode URI penuh?
- Mengenkode nilai yang masuk ke dalam URL (kata kunci pencarian, alamat pengalihan, surel di dalam parameter) → mode komponen, supaya & dan = di dalam nilainya tidak merusak string kueri. Mengenkode satu URL lengkap untuk ditampilkan atau dikirim → mode URI penuh, supaya struktur URL-nya selamat.
- Kenapa + kadang berarti spasi?
- Format application/x-www-form-urlencoded — dipakai pengiriman formulir HTML dan string kueri — secara historis mengenkode spasi sebagai +. Di dalam path URL, + hanyalah tanda tambah. Pendekode di sini memperlakukan + sebagai spasi, mengikuti semantik string kueri; sedangkan %20 selalu benar di mana pun.
- Kenapa string saya terenkode dua kali (%2520)?
- %25 adalah hasil pengodean tanda % itu sendiri, jadi %2520 berarti teks %20 dienkode untuk kedua kalinya. Ini terjadi ketika dua lapisan sistem sama-sama mengenkode. Jalankan dekode dua kali di sini untuk membukanya, lalu perbaiki lapisan yang seharusnya tidak ikut mengenkode.
- Apakah karakter Unicode ditangani dengan benar?
- Ya — teks dienkode ke UTF-8 lebih dulu lalu tiap bita di-escape persen, sesuai standar URL dari WHATWG. Itulah sebabnya satu karakter CJK berubah menjadi tiga kelompok %XX.