Cara menggunakan Encode & Decode URL
- Pilih mode: Encode komponen untuk satu nilai query atau segmen path, Encode URL lengkap untuk alamat utuh, atau Decode.
- Ketik atau tempel teks di kotak kiri; hasilnya langsung diperbarui saat kamu mengetik.
- Gunakan Spasi sebagai + untuk encoding gaya form HTML, atau Setiap baris terpisah untuk memproses daftar.
- Tempel URL apa pun ke parser URL untuk melihat host, path, dan tabel parameter query yang sudah di-decode.
Apa itu URL encoding?
URL encoding, secara formal disebut percent-encoding (RFC 3986), mengganti karakter yang tidak diizinkan atau punya arti khusus dalam URL dengan % diikuti dua digit heksadesimal. Spasi menjadi %20, & menjadi %26, dan karakter non-ASCII lebih dulu diubah menjadi byte UTF-8 lalu di-encode byte per byte: é → %C3%A9, € → %E2%82%AC. Tanpa encoding, nilai seperti Tom & Jerry dalam query string akan terpecah menjadi dua parameter.
encodeURIComponent vs. encodeURI
JavaScript menyediakan dua fungsi, dan salah memilih salah satunya adalah bug klasik:
| Karakter | encodeURIComponent | encodeURI |
|---|---|---|
| Spasi | %20 | %20 |
/ ? # & = : @ + , ; $ | Di-encode | Tetap apa adanya |
A–Z a–z 0–9 - _ . ! ~ * ' ( ) | Tetap | Tetap |
é, emoji, karakter non-ASCII lainnya | Percent-encoded UTF-8 | Percent-encoded UTF-8 |
Gunakan encodeURIComponent (“Encode komponen”) untuk apa pun yang kamu sisipkan ke dalam URL, misalnya nilai parameter query, segmen path, atau URL redirect yang dikirim sebagai parameter. Gunakan encodeURI (“Encode URL lengkap”) hanya untuk URL utuh yang hanya berisi spasi atau karakter non-ASCII, karena fungsi ini membiarkan karakter struktural : / ? # & tetap utuh.
%20 atau +?
Di bagian path URL, spasi harus ditulis %20. Dalam query string yang dikirim dari form HTML (application/x-www-form-urlencoded), spasi ditulis sebagai +. Kebanyakan server menerima keduanya di query string, tetapi tanda plus yang memang ingin dikirim harus ditulis sebagai %2B. Decoder memperlakukan + sebagai spasi secara default; hilangkan centang pada opsi tersebut jika datamu memang berisi tanda plus.
Error saat decoding
Karakter % harus diikuti tepat dua digit heksadesimal, dan karakter UTF-8 multi-byte membutuhkan semua byte-nya. decodeURIComponent() biasa akan melempar URIError: malformed URI sequence pada urutan yang salah pertama kali; tool ini men-decode semua bagian yang valid, membiarkan bagian yang rusak apa adanya, dan memberitahumu bagian mana saja yang rusak. String yang di-encode dua kali (%2520) akan menjadi %20 setelah satu kali proses; decode sekali lagi untuk mendapatkan spasinya.
Struktur sebuah URL
https://user@shop.example.com:8443/search?q=shoes#results terdiri dari skema (https:), kredensial opsional, host, port, path, query string, dan fragment. Parser di atas menggunakan URL API standar browser (WHATWG URL Standard), yang sama dengan yang dipakai fetch(). Sedang membuat link kampanye? Coba UTM Builder. Perlu meng-encode data biner? Gunakan Base64.
Juga dicari sebagai: url encode online, url decode online, percent encoding, urlencode, urldecode, parser query string, encodeuricomponent.
Tool yang cocok dipakai bersama Encode & Decode URL
- Encoder HTML Entity — Escape < > & " supaya teks aman ditampilkan di HTML, ubah aksen dan simbol menjadi named atau numeric entity, atau decode HTML yang penuh entity menjadi teks biasa.
- Generator Slug — Ubah judul apa pun menjadi slug URL huruf kecil yang bersih, dengan transliterasi aksen, umlaut, dan huruf Sirilik yang tepat, penghapusan kata umum opsional, serta mode massal untuk seluruh daftar.
- JWT Decoder — Tempel JSON Web Token untuk memeriksa header dan payload-nya, melihat kapan token kedaluwarsa, dan memverifikasi tanda tangannya.
- Penerjemah Kode Morse — Ketik teks untuk mendapatkan kode Morse, atau tempel titik dan garis untuk menerjemahkannya.
Pertanyaan yang sering diajukan
Kapan saya sebaiknya memakai encodeURIComponent, bukan encodeURI?
/ ? & # = tidak di-encode.Kenapa spasi kadang ditulis %20 dan kadang +?
%20 adalah encoding RFC 3986 yang valid di mana saja dalam URL. + berarti spasi hanya dalam query string yang di-encode sebagai form (application/x-www-form-urlencoded), yang biasanya dikirim oleh form HTML.Apa arti “URIError: malformed URI sequence”?
% yang tidak diikuti dua digit heksadesimal, atau urutan byte UTF-8 yang tidak lengkap. Decoder ini membiarkan bagian tersebut tidak berubah dan menampilkannya dalam daftar, alih-alih gagal total.Karakter apa saja yang tidak pernah perlu di-encode?
A–Z a–z, angka 0–9, dan - _ . ~. Karakter lainnya either dicadangkan untuk sintaks URL atau harus di-percent-encode.