URL Encode Online

Encode karakter khusus dalam URL

Coba contoh

Teks Biasa / URL

Terenkode

Berjalan lokal · Aman untuk menempel rahasia
Output yang di-encode...
Mode:

Apa itu Encoding URL?

Encoding URL (disebut juga percent-encoding) adalah mekanisme untuk mengkodekan informasi dalam Uniform Resource Identifier (URI) agar hanya karakter yang diizinkan oleh RFC 3986 yang muncul dalam string akhir. Setiap karakter yang bukan karakter unreserved (A–Z, a–z, 0–9, -, _, ., ~) digantikan dengan tanda persen diikuti dua digit heksadesimal yang mewakili nilai byte UTF-8 karakter tersebut — misalnya, spasi menjadi %20 dan & menjadi %26.

Percent-encoding diperlukan karena URL hanya dapat mengandung sekumpulan karakter ASCII yang terbatas. Ketika URL menyertakan karakter di luar kumpulan ini — spasi, huruf Unicode, simbol seperti &, =, atau / yang digunakan sebagai nilai literal bukan sebagai pemisah struktural — karakter-karakter tersebut harus dikodekan agar parser URL tidak salah menafsirkannya. Hal ini sangat penting untuk nilai query string, di mana & atau = yang tidak dikodekan akan merusak struktur parameter.

Mengapa Menggunakan Alat Ini?

Lihat secara instan bagaimana teks Anda dikodekan dalam kedua mode, dengan perbandingan langsung berdampingan — tidak perlu menulis kode untuk memeriksa kasus tepi.

Pratinjau Langsung
Output diperbarui saat Anda mengetik. Coba input yang berbeda dan lihat secara instan karakter mana yang dikodekan dan mana yang dipertahankan.
🔀
Dua Mode
Beralih antara encodeURIComponent (untuk nilai) dan encodeURI (untuk URL lengkap) tanpa meninggalkan halaman.
🔒
Hanya Sisi Klien
Semua encoding berjalan secara lokal di browser Anda. Parameter query sensitif dan token tidak pernah menyentuh server.
📋
Salin Satu Klik
Salin output yang dikodekan ke clipboard dengan satu tombol. Siap ditempel langsung ke kode, terminal, atau bilah alamat browser Anda.

Cara menggunakan URL encoder online ini

Tanpa akun, tanpa instalasi. Tempel atau ketik teks Anda ke kolom input dan hasil yang dienkode persen langsung muncul. Semuanya berjalan di browser Anda — data Anda tidak pernah meninggalkan perangkat Anda.

  1. 1
    Tempel teks atau URL Anda
    Masukkan string apa pun — nilai parameter kueri, URL lengkap, segmen jalur, atau payload JSON. Encoder memprosesnya karakter demi karakter sesuai RFC 3986.
  2. 2
    Pilih mode encoding
    Pilih encodeURIComponent untuk mengenkode nilai parameter individual (mengenkode semua kecuali karakter yang tidak direservasi). Pilih encodeURI untuk mengenkode URL lengkap sambil mempertahankan karakter strukturalnya seperti ://?#&=.
  3. 3
    Salin output yang dienkode
    String yang dienkode persen langsung muncul. Klik Salin untuk mengambil hasilnya dan menempelkannya langsung ke panggilan API, action form, atau file konfigurasi.
  4. 4
    Dekode kembali jika diperlukan
    Membuat kesalahan atau ingin memverifikasi hasilnya? Beralih ke alat URL Decoder dengan satu klik untuk membalikkan encoding.

Karakter Apa yang Dikodekan?

RFC 3986 membagi karakter URL menjadi dua kategori: karakter unreserved (tidak pernah dikodekan) dan karakter reserved (memiliki arti khusus — dikodekan atau dipertahankan tergantung konteks). Tabel di bawah menunjukkan bagaimana dua fungsi JavaScript memperlakukan karakter kunci:

Kar.Arti dalam URLencodeURIComponentencodeURI
Spaceword separator%20%20
+plus sign%2B%2B
/path separator%2F/ (kept)
?query start%3F? (kept)
#fragment%23# (kept)
&param separator%26& (kept)
=param value%3D= (kept)
@auth separator%40@ (kept)
:scheme / port%3A: (kept)
%percent literal%25%25
~unreserved~ (kept)~ (kept)
-_.~unreserved setkept as-iskept as-is

encodeURIComponent vs encodeURI

JavaScript menyediakan dua fungsi encoding dengan perilaku yang sangat berbeda. Memilih yang salah adalah salah satu bug penanganan URL yang paling umum:

encodeURIComponent()
Mengkodekan segalanya kecuali kumpulan karakter unreserved (A–Z a–z 0–9 - _ . ~). Ini adalah pilihan yang tepat untuk mengkodekan nilai parameter query individual, segmen path, atau nilai apa pun yang akan disematkan di dalam URL. Ini akan mengkodekan /, ?, #, & dan semua karakter reserved lainnya.
encodeURI()
Mempertahankan seluruh struktur URL dengan membiarkan karakter reserved (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) tidak dikodekan. Gunakan ini hanya ketika Anda memiliki URL lengkap dengan struktur yang ingin Anda pertahankan, dan hanya perlu mengkodekan karakter non-ASCII atau ilegal di dalamnya.

Kasus Penggunaan Umum

Parameter Query String
Kodekan nilai parameter sebelum menambahkannya ke URL: name=John%20Doe bukan name=John Doe. Spasi dan karakter khusus yang tidak dikodekan akan merusak parser URL dan menghasilkan hasil yang tidak terduga.
Membangun Permintaan API
REST API memerlukan parameter query yang dikodekan dengan benar. Mengkodekan nilai dengan encodeURIComponent mencegah injeksi parameter tambahan melalui karakter seperti & dan = yang disematkan dalam nilai.
Pengiriman Data Formulir
Formulir HTML mengirimkan data sebagai application/x-www-form-urlencoded secara default. Memahami percent-encoding membantu men-debug apa yang dikirim browser dan apa yang diterima server.
Segmen Path dengan Karakter Khusus
Nama file atau identifier yang mengandung spasi, garis miring, atau karakter unicode harus dikodekan secara persen ketika digunakan sebagai segmen path URL: /files/my%20document.pdf.
OAuth & Token Auth
OAuth 1.0a dan beberapa protokol autentikasi mengharuskan string dasar dibangun dari nama dan nilai parameter yang dikodekan persen mengikuti algoritma normalisasi yang ketat.
Deep Link & URL Berbagi
Saat membuat URL yang dapat dibagikan yang menyematkan konten pengguna (kueri penelusuran, status filter, koordinat), kodekan semua nilai dinamis untuk mencegah tautan rusak dan XSS melalui manipulasi URL.

Contoh Kode

Cara mengkodekan string URL dalam bahasa dan lingkungan populer:

JavaScript (browser / Node.js)
// Encode a query parameter value (most common case)
encodeURIComponent('hello world & more') // → "hello%20world%20%26%20more"

// Encode a complete URL (preserves ://?#& structure)
encodeURI('https://example.com/path?q=hello world') // → "https://example.com/path?q=hello%20world"

// Build a query string safely
const params = new URLSearchParams({ q: 'hello world', lang: 'en' })
const url = `https://example.com/search?${params}` // uses + for spaces
Python
from urllib.parse import quote, urlencode, quote_plus

# Encode a path segment or query value
quote('hello world & more')          # → 'hello%20world%20%26%20more'

# Encode for application/x-www-form-urlencoded (space → +)
quote_plus('hello world')            # → 'hello+world'

# Build a query string
urlencode({'q': 'hello world', 'lang': 'en'})  # → 'q=hello+world&lang=en'
Node.js (URL API)
const url = new URL('https://example.com/search')
url.searchParams.set('q', 'hello world & more')
url.searchParams.set('lang', 'en')
console.log(url.toString())
// → https://example.com/search?q=hello+world+%26+more&lang=en
CLI (curl / bash)
# curl automatically percent-encodes --data fields
curl -G "https://example.com/search" --data-urlencode "q=hello world & more"

# Manual encoding with Python one-liner
python3 -c "from urllib.parse import quote; print(quote('hello world'))"

URL Encoder vs. alternatif

Beberapa alat dapat mengenkode persen teks, tetapi berbeda dalam kontrol, privasi, dan konteks.

Alat ini
Berbasis browser, instan, privat. Mendukung mode encodeURIComponent dan encodeURI. Tidak ada data yang dikirim ke server mana pun. Menangani input Unicode lengkap.
Address bar browser
Browser mengenkode URL secara otomatis saat Anda menempelkannya, tetapi hanya sebagian — banyak karakter khusus dipertahankan untuk keterbacaan. Tidak cocok untuk mengenkode nilai parameter.
URLSearchParams / urllib
Pendekatan programatik yang tepat untuk membangun URL di JavaScript atau Python. Gunakan alat ini untuk enkode cepat satu kali atau untuk memverifikasi apa yang akan dihasilkan kode Anda.

Pertanyaan yang Sering Diajukan

Apa perbedaan antara %20 dan + untuk spasi?
Keduanya mewakili spasi, tetapi dalam konteks yang berbeda. %20 adalah representasi percent-encoded standar dari spasi dan valid di mana saja dalam URL. Tanda + mewakili spasi hanya dalam format application/x-www-form-urlencoded (pengiriman formulir HTML). Dalam path URL atau nilai query mentah, + adalah tanda plus literal, bukan spasi. Gunakan %20 untuk kompatibilitas maksimum.
Kapan harus menggunakan encodeURIComponent vs encodeURI?
Gunakan encodeURIComponent untuk nilai individual (parameter query, segmen path, fragmen hash). Gunakan encodeURI hanya ketika Anda memiliki URL lengkap dan ingin mempertahankan strukturnya. Kesalahan umum adalah menggunakan encodeURI pada nilai query — itu akan membiarkan & dan = tidak dikodekan, merusak query string.
Apakah encoding URL menangani karakter Unicode?
Ya. Karakter non-ASCII pertama-tama dikonversi ke representasi byte UTF-8-nya, kemudian setiap byte dikodekan persen. Misalnya, tanda euro (U+20AC) dikodekan menjadi %E2%82%AC — tiga byte UTF-8-nya. Baik encodeURIComponent maupun encodeURI menangani ini dengan benar di semua browser modern.
Apakah double-encoding menjadi masalah?
Ya. Jika Anda mengkodekan string yang sudah dikodekan, %20 menjadi %2520 (% itu sendiri dikodekan menjadi %25). Selalu kodekan nilai mentah, bukan yang sudah dikodekan. Jika ragu, dekode dulu, kemudian encode ulang.
Karakter apa yang selalu aman dalam URL?
Karakter unreserved yang didefinisikan oleh RFC 3986 selalu aman dan tidak pernah memerlukan encoding: huruf besar A–Z, huruf kecil a–z, digit 0–9, tanda hubung (-), garis bawah (_), titik (.), dan tilde (~). Semua yang lain harus dikodekan persen ketika digunakan sebagai nilai bukan sebagai pemisah struktural.
Mengapa beberapa URL mengandung hex huruf besar (%2F) dan yang lain huruf kecil (%2f)?
Keduanya valid. RFC 3986 menyatakan bahwa urutan percent-encoded tidak peka huruf besar-kecil, sehingga %2F dan %2f setara. Namun, RFC yang sama merekomendasikan penggunaan digit hex huruf besar untuk konsistensi. Sebagian besar browser dan library menghasilkan huruf besar.
Apakah alat ini mengenkode URL lengkap atau hanya parameternya?
Keduanya. Gunakan mode encodeURIComponent untuk mengenkode nilai parameter kueri individual (kasus penggunaan paling umum). Gunakan mode encodeURI untuk mengenkode URL lengkap sambil mempertahankan karakter strukturalnya seperti ://, ?, #, dan &.
Apakah ada batasan panjang untuk encoding?
Tidak ada batasan sisi server — alat ini berjalan sepenuhnya di browser Anda. Batas praktis bergantung pada memori browser Anda. Untuk input yang sangat besar atau pemrosesan batch, gunakan encodeURIComponent dalam sebuah skrip.