Encoder URL
Enkode dan dekode URL
Cara menggunakan Encoder URL
Enkode dan dekode URL Alat online gratis, tanpa pendaftaran, tanpa iklan mengganggu. Gunakan sekarang.
Kapan URL encoding diperlukan?
URL hanya dapat mengandung set karakter ASCII terbatas. Spasi, karakter bahasa Indonesia, tanda baca, dan karakter non-ASCII harus di-encode sebagai urutan persen (%XX) agar dapat ditransmisikan dengan aman dalam URL. Ini sangat relevan untuk layanan web yang mengandung teks bahasa Indonesia.
- Parameter query: Saat meneruskan input pengguna sebagai parameter URL, encoding diperlukan. Query pencarian "wisata Jakarta" menjadi
wisata%20Jakarta— setiap karakter non-URL-safe dikonversi ke representasi heksadesimal UTF-8-nya. - Permintaan API: Saat membangun URL API secara programatis, encode parameter sebelum menambahkannya ke URL dasar. Mencegah permintaan yang tidak valid dan kerentanan keamanan seperti parameter injection.
- Pengiriman formulir: Formulir HTML dengan method="GET" meng-encode nilai formulir ke dalam URL. Memahami skema encoding ini membantu men-debug pengiriman formulir dan merekonstruksi nilai asli dari log server.
- Berbagi tautan: Saat berbagi URL yang mengandung teks bahasa Indonesia, banyak platform merusak URL ini tanpa encoding yang benar. Terutama saat salin-tempel antar sistem yang berbeda.
- Debugging: Decode URL yang di-encode untuk membaca parameter aslinya. Berguna saat memeriksa permintaan jaringan di DevTools browser atau log server web.
Aturan encoding: Huruf (A-Z, a-z), angka (0-9), dan karakter -_.~ tidak pernah di-encode. Semua yang lain di-encode sebagai % diikuti dua digit heks yang merepresentasikan nilai byte UTF-8 karakter tersebut. Satu karakter huruf Indonesia dengan diakritik biasanya menjadi 2-3 byte (4-6 digit heks).
Frequently Asked Questions
Apa perbedaan encodeURI dan encodeURIComponent dalam JavaScript?
encodeURI mengkode URL lengkap, tidak mengkode karakter struktural yang bermakna dalam URL (/, ?, &, #, :). encodeURIComponent mengkode segalanya kecuali huruf, angka, dan -_.~*. Selalu gunakan encodeURIComponent untuk nilai parameter individual.
Apa perbedaan + dan %20 untuk spasi?
Keduanya merepresentasikan spasi dalam URL encoding, tetapi dalam konteks yang berbeda. %20 adalah representasi yang benar untuk spasi di semua komponen URL. Tanda plus hanya merepresentasikan spasi dalam application/x-www-form-urlencoded (data formulir HTML) — jangan gunakan di segmen path URL.
Mengapa double encoding bisa menjadi masalah?
Jika URL mengandung %252F, itu adalah %2F (yang merupakan encoding '/') yang di-encode. Decode sekali menghasilkan %2F; decode dua kali menghasilkan /. Double encoding terjadi saat URL di-encode lebih dari sekali. Jika server mendecode URL berkali-kali, ini bisa menjadi kerentanan keamanan (path traversal attack).
Karakter apa yang harus di-encode dalam segmen path URL?
Karakter reserved yang memiliki arti khusus harus di-encode dalam segmen path: spasi (%20), # (%23), % (%25), ? (%3F), dll. Garis miring / adalah pemisah path — untuk literal garis miring dalam segmen path, encode sebagai %2F.
Apa itu Punycode dan hubungannya dengan URL encoding?
Punycode mengonversi nama domain internasional (IDN) dengan karakter non-ASCII ke encoding yang kompatibel dengan ASCII. Berbeda dengan percent-encoding yang digunakan di path dan query, Punycode hanya berlaku untuk nama domain. Misalnya, domain dengan karakter bahasa Arab atau Cina akan dikonversi ke format Punycode untuk transmisi.
URL encoding vs Base64 vs HTML entities
URL encoding (percent-encoding) membuat data aman untuk URL. Base64 encoding membuat data biner aman untuk konteks teks (email, JSON). HTML entities membuat karakter khusus aman untuk HTML: & menjadi &, < menjadi <. Masing-masing memecahkan masalah yang sama (merepresentasikan data dalam set karakter terbatas) untuk konteks target yang berbeda. Menggunakan encoding yang salah untuk konteksnya menghasilkan tampilan error atau kerentanan keamanan.