URL Encoder/Decoder

URL encoder decoder kami mengonversi URL dan teks ke format percent-encoded dan sebaliknya secara real-time. Encode karakter khusus, parameter query, segmen path, dan teks Unicode agar aman digunakan dalam URL. Decode string percent-encoded kembali menjadi teks yang dapat dibaca. Mendukung encoding standar RFC 3986, encoding komponen, dan encoding URL lengkap dengan dukungan UTF-8. Semua pemrosesan dilakukan di sisi klien — data Anda tidak pernah meninggalkan peramban Anda.

star 4.9
auto_awesome AI
New

URL Encoder calculator

Method:
0 characters 0 bytes
0 characters

lightbulb Tips

  • •Use encodeURIComponent for query values
  • •Spaces → %20 (standard) or + (form data)
  • •A-Z a-z 0-9 - _ . ~ are never encoded
  • •Always encode user input before URLs

How to Use the URL Encoder

swap_horiz

Pilih Mode

Pilih Encode untuk mengonversi teks ke URL encoding, atau Decode untuk mengembalikan teks percent-encoded.

tune

Pilih Metode

Pilih Komponen (untuk nilai query), URI (untuk URL lengkap), atau Data Formulir (+ untuk spasi).

text_fields

Masukkan Input

Ketik atau tempel teks Anda (untuk dienkode) atau URL terenkode (untuk didekode).

content_copy

Dapatkan Hasil

Hasil muncul secara instan. Klik Salin untuk menyalin ke papan klip.

The Formula

Pengodean URL (percent encoding) menggantikan karakter yang tidak aman atau terpesan dengan tanda persen (%) diikuti oleh dua digit heksadesimal yang mewakili nilai byte karakter tersebut. Sebagai contoh, spasi menjadi %20, dan '&' menjadi %26. Karakter UTF-8 menggunakan beberapa byte terenkode persen (misalnya, '€' → %E2%82%AC). Karakter tidak terpesan (huruf, angka, -, _, ., ~) tidak pernah dienkode.

URL Encoding = replace unsafe characters → %HH (hex byte value)

lightbulb Variables Explained

  • %HH Tanda persen diikuti dua digit heksadesimal yang mewakili nilai byte
  • Unreserved chars A-Z a-z 0-9 - _ . ~ (tidak pernah dienkode)
  • Reserved chars : / ? # [ ] @ ! $ & ' ( ) * + , ; = (dienkode dalam komponen)
  • UTF-8 Karakter multi-byte dienkode sebagai beberapa urutan %HH

tips_and_updates Pro Tips

1

Gunakan encodeURIComponent untuk nilai parameter query — fungsi ini meng-encode semua karakter kecuali A-Z a-z 0-9 - _ . ~

2

Gunakan encodeURI untuk URL lengkap — fungsi ini mempertahankan karakter struktur URL seperti :, /, ?, #, &, = dan lainnya

3

Spasi dapat di-encode sebagai %20 (standar) atau + (data formulir / application/x-www-form-urlencoded)

4

Selalu encode input pengguna sebelum dimasukkan ke dalam URL untuk mencegah serangan injeksi

5

Karakter UTF-8 seperti emoji di-encode menjadi beberapa byte %HH (contohnya, 😀 → %F0%9F%98%80)

6

Double-encoding terjadi saat Anda meng-encode string yang sudah di-encode — decode terlebih dahulu jika Anda ragu

7

RFC 3986 menentukan standar: karakter unreserved (A-Z a-z 0-9 - _ . ~) tidak pernah di-encode

Alat enkode dekode URL online gratis kami mengubah teks ke format terenkode persen dan sebaliknya secara instan. Enkode parameter kueri, segmen jalur, dan karakter khusus agar URL aman digunakan. Dekode string terenkode persen kembali menjadi teks yang dapat dibaca. Mendukung UTF-8 dan semua karakter Unicode.

URL Encoder - Teks ke Pengodean Persen

Konversi teks apa pun ke pengodean persen yang aman untuk URL secara instan. Pengenkode kami menangani spasi, karakter khusus, Unicode, dan emoji.

Pilih antara:

  • pengodean komponen (untuk nilai kueri)
  • pengodean URI (mempertahankan struktur URL)
  • pengodean data formulir (+ untuk spasi)

URL Decoder - Pengodean Persen ke Teks

Dekode URL terenkode persen apa pun kembali ke teks yang dapat dibaca. Tempel URL terenkode, string kueri, atau parameter individu dan lihat teks aslinya secara instan.

Menangani:

  • urutan %HH
  • tanda plus sebagai spasi
  • karakter UTF-8 multi-byte

Bagaimana Cara Kerja Pengodean URL (Percent Encoding)?

Pengodean URL bekerja dengan mengganti setiap karakter yang tidak aman atau terpesan dalam URL dengan tanda persen diikuti dua digit heksadesimal yang mewakili nilai byte karakter tersebut, sebuah skema yang didefinisikan secara resmi dalam RFC 3986 oleh IETF.

Spasi menjadi %20, ampersand menjadi %26, dan garis miring menjadi %2F. Karakter non-ASCII terlebih dahulu dikonversi ke urutan byte UTF-8, kemudian setiap byte dienkode persen, sehingga huruf 'é' menjadi %C3%A9.

Menurut MDN Web Docs, peramban menerapkan ini secara otomatis melalui fungsi seperti encodeURIComponent. Hanya karakter tidak terpesan (A-Z, a-z, 0-9, tanda hubung, garis bawah, titik, tilde) yang dibiarkan tanpa diubah.

Apa Perbedaan Antara encodeURI dan encodeURIComponent?

encodeURI mengenkode seluruh URL sambil mempertahankan karakter struktural terpesan, sedangkan encodeURIComponent mengenkode satu komponen dan juga mengubah karakter struktural tersebut.

Sebagaimana didokumentasikan oleh MDN Web Docs, encodeURI membiarkan :, /, ?, #, &, dan = tetap utuh sehingga seluruh alamat tetap berfungsi, menjadikannya tepat untuk URL lengkap. encodeURIComponent mengubah segalanya kecuali set karakter tidak terpesan RFC 3986, sehingga merupakan pilihan yang tepat untuk nilai parameter kueri, segmen jalur, atau teks fragmen yang mungkin berisi karakter terpesan.

Menggunakan encodeURI saat encodeURIComponent dibutuhkan adalah bug umum: karakter & tanpa enkode di dalam nilai akan salah dibaca sebagai pemisah parameter, yang secara tidak langsung merusak permintaan.

Karakter Mana Saja yang Terpesan vs Tidak Terpesan dalam URL?

RFC 3986 membagi karakter URL menjadi set terpesan dan tidak terpesan, dan perbedaan ini menentukan apa yang akan dienkode persen.

  • Karakter tidak terpesan adalah huruf A-Z dan a-z, angka 0-9, serta empat tanda: tanda hubung, garis bawah, titik, dan tilde; karakter ini tidak pernah memerlukan pengodean.
  • Karakter terpesan mencakup pembatas umum : / ? # [ ] @ dan pembatas tingkat kedua ! $ & ' ( ) * + , ; = yang memiliki makna sintaksis.

Sesuai spesifikasi IETF, karakter terpesan dapat muncul tanpa enkode ketika menjalankan perannya sebagai pembatas, tetapi harus dienkode persen ketika digunakan secara harfiah di dalam komponen. Semua hal di luar kedua set tersebut, termasuk spasi dan Unicode, harus selalu dienkode.

Mengapa URL Menggunakan %20 untuk Spasi?

URL menggunakan %20 untuk spasi karena karakter spasi tidak diizinkan muncul secara harfiah di dalam URI berdasarkan RFC 3986, sehingga di-percent-encode menjadi nilai bita ASCII-nya, yaitu heksadesimal 20.

Ada konvensi kedua: pada data application/x-www-form-urlencoded—format yang digunakan dalam pengiriman formulir HTML dan berbagai query string—spasi dikodekan sebagai tanda plus (+) alih-alih %20, sebagaimana ditentukan oleh Standar URL WHATWG dan spesifikasi formulir W3C.

Inilah alasan mengapa dekoder harus memahami konteksnya. %20 aman secara universal pada path, query, dan fragmen, sedangkan + hanya bermakna spasi di dalam data query form-encoded dan diperlakukan sebagai tanda plus harfiah di tempat lainnya.

Bagaimana URL Encoding Menangani Unicode dan Emoji?

URL encoding menangani Unicode dengan terlebih dahulu mengonversi setiap karakter menjadi urutan bita UTF-8, lalu melakukan percent-encoding pada setiap bita tersebut. Unicode Consortium mendefinisikan code point-nya, dan UTF-8 (ditetapkan dalam RFC 3629) memetakannya menjadi satu hingga empat bita.

Sebagai contoh:

  • Karakter ASCII satu bita seperti 'A' tetap menjadi 'A'
  • 'é' dikodekan menjadi %C3%A9
  • karakter CJK '日' menjadi %E6%97%A5
  • emoji seperti 😀 dikodekan menjadi empat bita, %F0%9F%98%80

MDN Web Docs mencatat bahwa fungsi encodeURIComponent di JavaScript secara default beroperasi pada UTF-8. Dekoder membalikkan proses ini dengan mengumpulkan bita-bita yang di-percent-encode dan menafsirkannya kembali sebagai stream UTF-8 untuk mengembalikan teks aslinya.

Apa Itu Double Encoding dan Bagaimana Cara Menghindarinya?

Double encoding terjadi ketika string yang sudah di-percent-encode dikodekan kembali, mengubah setiap % menjadi %25 sehingga %20 berubah menjadi %2520 dan nilainya tidak lagi terbaca dengan benar.

Hal ini kerap menjadi penyebab tautan rusak dan, menurut OWASP, menjadi celah keamanan karena penyerang memanfaatkan double encoding untuk meloloskan input berbahaya dari filter yang hanya melakukan dekode satu kali.

Untuk menghindarinya, lakukan encoding tepat satu kali saat nilai dimasukkan ke dalam URL, dan jangan pernah mengodekan ulang data yang berasal dari sumber yang sudah terenkode. Jika Anda ragu apakah suatu string sudah terkode atau belum, lakukan dekode terlebih dahulu; jika hasilnya berubah dan tampak terbaca, berarti string tersebut memang sudah terkode dan Anda tidak perlu mengodekannya lagi.

Apakah URL Encoding Aman? Encoding vs Enkripsi

URL encoding tidaklah aman dan tidak memberikan kerahasiaan data; proses ini hanyalah transformasi dua arah demi keamanan transmisi data, bukan enkripsi. Siapa pun dapat mendekode string percent-encoded dalam sekejap, sehingga data sensitif di dalam URL tetap dapat terbaca sepenuhnya dan, seperti yang diperingatkan oleh OWASP, juga terekspos di riwayat peramban, log server, serta header Referer.

Encoding hanya memastikan karakter khusus tidak merusak sintaksis URL. Sebaliknya, enkripsi menggunakan kunci dan algoritma seperti AES (distandardisasi oleh NIST) agar data tidak dapat dibaca tanpa kunci tersebut.

Penggunaan encoding yang tepat dari segi keamanan adalah menggabungkannya dengan output escaping yang benar untuk mencegah serangan injeksi; jangan pernah menganggapnya sebagai cara untuk menyembunyikan atau melindungi informasi.

Bagaimana Cara Mengodekan Query String dan Parameter URL dengan Benar?

Untuk mengodekan query string dengan benar, terapkan encodeURIComponent pada setiap key dan nilai parameter secara terpisah sebelum menggabungkannya dengan & dan =, alih-alih mengodekan seluruh string yang sudah dirangkai sekaligus.

Langkah ini memastikan bahwa karakter khusus (reserved characters) di dalam nilai, seperti & atau = pada input pengguna, di-escape menjadi %26 dan %3D agar tidak disalahartikan sebagai pemisah, sesuai dengan aturan application/x-www-form-urlencoded dalam Standar URL WHATWG. Sebagai contoh, nilai 'hello world&x=1' harus diubah menjadi 'hello%20world%26x%3D1'.

Berdasarkan MDN Web Docs, API URLSearchParams dapat mengotomatisasi proses ini secara aman. Selalu lakukan encoding pada data dari pengguna sebelum memasukkannya ke dalam query string untuk mencegah injeksi parameter dan request yang cacat (malformed).

Kesalahan Umum Saat Encoding dan Decoding URL

Kesalahan paling umum dalam URL encoding adalah memilih fungsi yang salah: menggunakan encodeURI pada nilai query membuat &, =, dan ? tidak di-escape, sehingga input pengguna dapat merusak struktur URL.

Kesalahan umum lainnya, yang beberapa di antaranya disorot oleh OWASP dan MDN Web Docs, meliputi:

  • double encoding pada suatu nilai sehingga %20 menjadi %2520
  • lupa bahwa tanda + hanya berarti spasi pada data form-encoded
  • mengodekan seluruh URL setelah selesai dibuat, alih-alih mengodekan setiap komponennya terlebih dahulu

Pengembang juga kerap salah menangani UTF-8 dengan mendekode bita sebagai Latin-1, yang memicu mojibake pada teks beraksen dan non-Latin. Terakhir, jangan pernah mengandalkan encoding untuk keamanan; kegagalan melakukan escaping output sesuai konteks target tetap membuka celah kerentanan injeksi meski percent-encoding yang digunakan valid.

Frequently Asked Questions

sell

Tags