onlinetools.dev

Enkode / Dekode URL

Enkode persen atau dekode komponen URL dan string kueri

Berjalan lokal
loading…
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.
Alat terkait