Skip to content
Enkode / Dekode URL
Tools

Enkode / Dekode URL

Baru

Enkode persen atau dekode teks dan urai query string, semuanya di peramban Anda.

Special characters reference
Character Encoded (%XX) Notes
space %20 Also encoded as + in HTML form query strings
& %26 Query param separator — encode in values
= %3D Key-value separator in query strings
? %3F Marks the start of a query string
# %23 Fragment identifier
/ %2F Path separator
: %3A Protocol / port separator
@ %40 Username delimiter in URLs
+ %2B Literal plus sign (+ in query string = space)
% %25 Percent itself — encode to avoid ambiguity
%E2%82%AC UTF-8 multi-byte (3 bytes)
© %C2%A9 UTF-8 multi-byte (2 bytes)
Per-language code snippets

Copy-ready snippets for JavaScript, Python, C#, PowerShell, Java and Go.

JavaScript / Node.js
// Encode a single query value (recommended)
const encoded = encodeURIComponent('hello world & co.');
// → 'hello%20world%20%26%20co.'

// Decode
const decoded = decodeURIComponent('hello%20world%20%26%20co.');
// → 'hello world & co.'

// Encode a full URL (leaves : / ? & # intact)
const safeUrl = encodeURI('https://example.com/search?q=hello world');
// → 'https://example.com/search?q=hello%20world'
Python
from urllib.parse import quote, unquote, urlencode

# Encode a single value (%20 for spaces)
encoded = quote('hello world & co.')
# → 'hello%20world%20%26%20co.'

# Decode
decoded = unquote('hello%20world%20%26%20co.')
# → 'hello world & co.'

# Encode a query dict (uses + for spaces — form encoding)
qs = urlencode({'q': 'hello world', 'page': '2'})
# → 'q=hello+world&page=2'

# quote_plus encodes spaces as + (match HTML form encoding)
plus = quote_plus('hello world')
# → 'hello+world'
C# / .NET
// Encode a single value (spaces → %20)
string encoded = Uri.EscapeDataString("hello world & co.");
// → "hello%20world%20%26%20co."

// Decode
string decoded = Uri.UnescapeDataString("hello%20world%20%26%20co.");
// → "hello world & co."

// Older System.Web API (spaces → +, form encoding):
// HttpUtility.UrlEncode("hello world") → "hello+world"
PowerShell
# .NET method — works in PS 5+ and PowerShell Core
$encoded = [Uri]::EscapeDataString('hello world & co.')
# → 'hello%20world%20%26%20co.'

$decoded = [Uri]::UnescapeDataString('hello%20world%20%26%20co.')
# → 'hello world & co.'

# Alternate via System.Web (Desktop PS only):
Add-Type -AssemblyName System.Web
$enc2 = [System.Web.HttpUtility]::UrlEncode('hello world')
# → 'hello+world'
Java
import java.net.URLEncoder;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// Encode (URLEncoder uses + for spaces — form encoding)
String encoded = URLEncoder.encode("hello world & co.", StandardCharsets.UTF_8);
// → "hello+world+%26+co."

// Decode
String decoded = URLDecoder.decode("hello+world+%26+co.", StandardCharsets.UTF_8);
// → "hello world & co."
Go
import "net/url"

// QueryEscape: spaces become +
encoded := url.QueryEscape("hello world & co.")
// → "hello+world+%26+co."

decoded, err := url.QueryUnescape("hello+world+%26+co.")
// → "hello world & co.", nil

// PathEscape: spaces become %20
pathSafe := url.PathEscape("hello world & co.")
// → "hello%20world%20&%20co."

Runs entirely in your browser. Nothing is uploaded.

URL encoder dan decoder online gratis

URL encoder dan decoder ini mengonversi teks menjadi bentuk percent-encoded — atau membalikkan prosesnya — langsung di browser Anda. Tempel teks Anda, pilih Encode atau Decode, pilih aturan Component atau Full URI, dan hasilnya diperbarui secara langsung. Tidak ada yang diunggah; setiap operasi berjalan sepenuhnya di browser Anda menggunakan fungsi JavaScript bawaan yang sama yang dipakai kode Anda.

Percent-encoding tidak terhindarkan dalam pengembangan web. Spasi, ampersand, tanda sama dengan, dan karakter non-ASCII semuanya harus di-escape sebelum bisa hidup dengan aman di dalam URL. Entah Anda sedang menyusun request API, mendebug tracking link, atau membaca log server, alat ini menangani semua edge case — termasuk karakter UTF-8 multi-byte, urutan yang cacat, dan ambiguitas + vs %20 untuk spasi.

encodeURIComponent vs encodeURI — aturan mana yang harus dipakai?

encodeURIComponent adalah pilihan yang tepat untuk nilai query individual, segmen path, atau string apa pun yang Anda sisipkan ke dalam URL. Fungsi ini meng-encode hampir setiap karakter khusus — termasuk ?, &, =, /, #, dan : — sehingga nilai itu tidak bisa merusak struktur URL. Contoh: 'hello world & page=2' menjadi 'hello%20world%20%26%20page%3D2'.

encodeURI dirancang untuk meng-encode seluruh URL tanpa merusaknya. Fungsi ini membiarkan karakter struktural tetap utuh (: / ? # &) sehingga URL-nya tetap berfungsi sambil tetap meng-encode spasi dan karakter non-ASCII. Jika ragu, lebih baik pilih aturan Component untuk apa pun yang Anda sisipkan sebagai nilai — itulah default yang aman di hampir setiap framework web.

Spasi sebagai %20 vs + — perbedaan form-encoding

Ada dua cara valid untuk meng-encode spasi dalam URL. Di path URL (bagian sebelum ?), RFC 3986 mewajibkan %20. Di query string form HTML, format application/x-www-form-urlencoded yang lebih lama meng-encode spasi sebagai + demi keringkasan historis — dan itulah yang masih dikirim browser saat Anda mengirimkan form lewat GET.

Keduanya berarti 'spasi', tetapi hanya dalam konteksnya masing-masing. + dalam path URL adalah tanda plus literal; + dalam query string adalah spasi. Tanda plus literal dalam nilai query harus di-encode sebagai %2B atau akan salah dibaca. Toggle + as space pada mode Decode menangani input form-encoded dengan mengganti + dengan spasi sebelum menjalankan decodeURIComponent — berguna saat memeriksa pengiriman form atau token OAuth.

Bagaimana ini dibandingkan dengan CyberChef dan alat encoding URL lainnya

CyberChef (dari GCHQ) sangat kuat tetapi dirancang di sekitar konsep pipeline 'recipe' — Anda merangkai beberapa operasi bersama. Untuk sekadar encoding atau decoding URL, Anda masih harus mencari operasinya, menyeretnya ke recipe, lalu memproses input. Alat itu sangat bagus untuk transformasi kompleks; lebih lambat dari yang diperlukan untuk encode/decode cepat.

Alat online lain seperti urldecoder.org dan meyerweb.com/eric/tools/dencoder/ sederhana tetapi menampilkan iklan, mewajibkan reload halaman penuh setiap operasi, dan tidak menawarkan cuplikan kode per bahasa. Alat ini memperbarui hasil seketika di setiap ketukan tombol, menangani baik aturan Component maupun Full URI, menyertakan tabel referensi karakter yang umum di-encode, dan menampilkan kode siap-salin dalam JavaScript, Python, C#, PowerShell, Java, dan Go — semua tanpa mengunggah apa pun.

Referensi cepat karakter khusus

Karakter yang paling umum di-encode dalam pengembangan web: spasi → %20 (atau + di query string), & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. Karakter UTF-8 multi-byte melebar menjadi beberapa urutan: € → %E2%82%AC, é → %C3%A9.

Karakter yang tidak pernah di-encode adalah set unreserved: huruf A–Z dan a–z, digit 0–9, dan keempat simbol - _ . ~. Selain itu — termasuk setiap karakter non-ASCII — harus di-percent-encode dalam URL yang sesuai standar.

URL encoding di JavaScript, Python, C#, PowerShell, dan Java

Setiap bahasa besar punya fungsi bawaan untuk ini. Di JavaScript / Node.js: encodeURIComponent(str) dan decodeURIComponent(str) — tidak perlu import. Di Python: urllib.parse.quote(str) dan unquote(str); urlencode(dict) untuk seluruh query string. Di C#: Uri.EscapeDataString(str) dan Uri.UnescapeDataString(str) dari namespace System. Di PowerShell: [Uri]::EscapeDataString(str), tersedia di PS 5+ dan PowerShell Core. Di Java: URLEncoder.encode(str, StandardCharsets.UTF_8).

Panel cuplikan per-bahasa menyertakan kode siap-salin untuk JavaScript, Python, C#, PowerShell, Java, dan Go sehingga Anda bisa langsung menempelkan pemanggilan yang tepat ke proyek Anda — dengan catatan tentang perilaku spasi + vs %20 untuk pustaka standar setiap bahasa.

100% privat — berfungsi offline juga

Setiap operasi encode dan decode hanya memakai fungsi bawaan browser Anda encodeURIComponent, decodeURIComponent, encodeURI, dan decodeURI. Tidak ada teks yang pernah dikirim ke server, disimpan, atau dicatat — bahkan nama domain dalam URL yang Anda tempel. Begitu halaman dimuat, matikan koneksi perangkat dan alat ini terus berfungsi dengan sempurna. Tandai sebagai bookmark dan gunakan kapan pun Anda perlu meng-encode, decode, atau memeriksa URL.

RFC 3986: anatomi URL dan aturan karakternya

RFC 3986 — spesifikasi definitif IETF untuk Uniform Resource Identifier — mendefinisikan URL sebagai rangkaian komponen: scheme://userinfo@host:port/path?query#fragment. Setiap komponen di-parse secara independen, dan masing-masing punya sekumpulan karakter sendiri yang membawa makna sintaksis. Titik dua setelah scheme (https:) adalah delimiter; titik dua di dalam segmen path hanyalah data. Karena byte yang sama bisa berarti hal berbeda tergantung di mana ia muncul, spesifikasi ini menarik garis tegas antara karakter yang termasuk sintaks dan karakter yang harus di-escape.

Spesifikasi ini mendefinisikan dua kelas karakter. Karakter unreserved — 66 kode poin A–Z, a–z, 0–9, hyphen, underscore, titik, dan tilde — aman di mana pun dalam URL dan tidak boleh di-percent-encode; meng-encode-nya menghasilkan URL yang secara teknis berbeda tapi setara. Karakter reserved — 18 kode poin : / ? # [ ] @ ! $ & ' ( ) * + , ; = — membawa makna sintaksis dan harus di-percent-encode ketika muncul sebagai data alih-alih delimiter. # dalam nilai query, misalnya, akan dibaca sebagai awal fragment, secara diam-diam membuang segala sesuatu setelahnya.

Memahami batas ini penting dalam praktik. Jika Anda menempatkan & mentah di dalam nilai parameter query, parser akan membaginya menjadi dua parameter pada titik itu. / mentah di dalam segmen path terlihat seperti batas direktori. ? mentah di dalam path terlihat seperti awal query string. Setiap karakter reserved yang muncul sebagai data harus di-encode — itulah keseluruhan tujuan percent-encoding, dan itulah alasan mengapa menyalin mentah-mentah URL dari sebuah dokumen dan menempelkannya ke kode begitu sering menghasilkan bug diam-diam.

Mekanika percent-encoding: %XX, byte UTF-8, dan urutan multi-byte

Percent-encoding bekerja di level byte, bukan level karakter. Setiap byte yang tidak aman ditulis sebagai tanda persen diikuti tepat dua digit heksadesimal huruf besar yang mewakili nilai byte itu. Contoh single-byte umum: spasi (byte 0x20) menjadi %20, tanda plus (0x2B) menjadi %2B, tanda at (0x40) menjadi %40, hash (0x23) menjadi %23, garis miring (0x2F) menjadi %2F. Karena karakter ASCII semuanya single-byte, masing-masing menghasilkan tepat satu token %XX.

Karakter non-ASCII membutuhkan encoding UTF-8 lebih dulu, baru percent-encoding pada setiap byte hasilnya. Huruf beraksen é adalah kode poin Unicode U+00E9. Dalam UTF-8 ia di-encode menjadi dua byte: 0xC3 dan 0xA9, jadi bentuk percent-encoded-nya adalah %C3%A9. Karakter Tionghoa (U+4E2D) di-encode menjadi tiga byte UTF-8 0xE4 0xB8 0xAD, menghasilkan %E4%B8%AD. Emoji seperti 😀 (U+1F600) membutuhkan empat byte UTF-8 dan melebar menjadi %F0%9F%98%80. Inilah mengapa Anda tidak boleh berasumsi urutan %XX selalu men-decode ke satu karakter — pindai kelompok urutan berurutan dan decode bersama-sama sebagai urutan UTF-8.

Perbedaan antara dua fungsi encoding JavaScript berasal langsung dari kelas karakter RFC 3986. encodeURIComponent() meng-encode setiap karakter kecuali 66 karakter unreserved, menjadikannya aman untuk nilai apa pun yang Anda sisipkan ke dalam URL — nilai parameter query, segmen path, nilai hash. encodeURI() tambahan mempertahankan 18 karakter reserved plus # sehingga struktur URL secara keseluruhan bertahan dari encoding; gunakan hanya saat Anda punya URL lengkap yang ingin Anda encode secara ringan, bukan nilai individual. Mencampuradukkan keduanya — meng-encode URL lengkap dengan encodeURIComponent — akan merusak semua garis miring, titik dua, dan tanda tanya.

Bug encoding URL umum: double-encoding, kebingungan +, dan spasi non-breaking

Double-encoding adalah bug encoding paling sering di sistem produksi. Ini terjadi ketika string yang sudah di-encode di-encode lagi untuk kedua kalinya. Spasi di-encode menjadi %20; meng-encode %20 kedua kalinya mengubah % menjadi %25, menghasilkan %2520. Saat server mendekodenya sekali, ia mendapat string %20, bukan spasi. Untuk merepresentasikan tanda persen literal dalam URL Anda harus meng-encode-nya sebagai %25 — itu benar dan disengaja — tetapi jika pipeline Anda meng-encode nilai di dua lapisan (sekali di ORM, sekali di HTTP client) Anda akan diam-diam merusak data. Perbaikannya adalah memastikan encoding terjadi tepat di satu lapisan, paling dekat dengan tempat URL itu dirangkai.

Ambiguitas tanda plus adalah sumber bug berulang kedua. Server web men-decode + sebagai spasi dalam query string karena format application/x-www-form-urlencoded HTML memakai konvensi itu — tetapi mereka tidak men-decode + sebagai spasi dalam segmen path, di mana + selalu tanda plus literal. Jika Anda meng-encode segmen path dengan quote_plus() Python atau API form-data JavaScript (yang memakai konvensi form-encoding), spasi menjadi + dan server akan menyajikan 404 untuk sesuatu yang seharusnya path valid. Selalu pakai %20 di segmen path dan simpan + hanya untuk query string application/x-www-form-urlencoded. Sebuah akibatnya: + literal dalam nilai query harus menjadi %2B atau akan di-decode sebagai spasi.

Dua isu yang lebih halus melengkapi jebakan umum ini. Pertama, kapitalisasi hex: RFC 3986 menyatakan triplet percent-encoded tidak peka huruf besar/kecil, jadi %2F dan %2f setara — tetapi beberapa API lama atau skema verifikasi signature melakukan perbandingan string level byte dan menolak hex huruf kecil. Selalu keluarkan hex huruf besar (fungsi bawaan JavaScript melakukan ini; urllib.parse.quote Python juga). Kedua, spasi non-breaking (Unicode U+00A0) tidak sama dengan spasi biasa (U+0020). Spasi biasa di-encode menjadi %20; spasi non-breaking, yang di-encode dalam UTF-8 sebagai byte 0xC2 0xA0, di-encode menjadi %C2%A0. Menyalin-tempel teks dari software pengolah kata atau editor rich-text sering memperkenalkan spasi non-breaking yang terlihat identik di layar tetapi menghasilkan string percent-encoded yang sepenuhnya berbeda, menyebabkan perbandingan string dan pencarian cache gagal.

Nama domain internasional, Punycode, dan ancaman homograf IDN

Meski percent-encoding menangani bagian path, query, dan fragment dari sebuah URL, bagian host (nama domain) memakai skema encoding yang sama sekali berbeda yang disebut Punycode. DNS dirancang untuk ASCII, jadi nama domain non-ASCII — disebut Internationalized Domain Names (IDN) — dikonversi menjadi encoding kompatibel-ASCII sebelum dicari di DNS. Algoritmanya menghasilkan label berawalan xn--: domain Jerman münchen.de menjadi xn--mnchen-3ya.de; domain Jepang 東京.jp menjadi xn--wgv71a309e.jp. Konversi ini didefinisikan dalam RFC 3492 dan ditangani secara transparan oleh browser dan sistem operasi — pengguna mengetik nama skrip native dan browser menerjemahkannya sebelum membuat request DNS.

IDN memperkenalkan kerentanan keamanan signifikan yang dikenal sebagai serangan homograf IDN. Banyak karakter Unicode secara visual tidak bisa dibedakan dari huruf ASCII: а Sirilik (U+0430) terlihat identik dengan a Latin (U+0061); ο Yunani (U+03BF) terlihat identik dengan o Latin. Penyerang bisa mendaftarkan domain seperti pаypal.com di mana а-nya Sirilik, membuat situs phishing yang meyakinkan, dan URL di bilah browser terlihat autentik bagi pengamat kasual. Untuk bertahan dari ini, browser menerapkan heuristik: jika domain mencampur skrip (Latin dan Sirilik dalam label yang sama) atau berasal dari TLD yang belum mempublikasikan kebijakan karakter aman, browser menampilkan bentuk Punycode (xn--pypal-4ve.com) alih-alih skrip native, membuat substitusi itu terlihat. Domain skrip tunggal dari TLD terdaftar yang telah memilih IDN ditampilkan dalam skrip native mereka.

Kesimpulan praktis bagi developer adalah host dan path di-encode secara berbeda dan tidak boleh dicampuradukkan. Jangan percent-encode nama domain — itu akan menghasilkan query DNS yang berantakan. Jangan menerapkan Punycode ke path — path secara eksklusif memakai percent-encoding. Saat menyusun URL secara terprogram dari input yang disediakan pengguna, gunakan pustaka URL-parsing (konstruktor URL WHATWG di JavaScript, urllib.parse.urlsplit Python, dll.) alih-alih konkatenasi string. Pustaka-pustaka ini menerapkan encoding yang benar ke setiap komponen secara otomatis dan melindungi dari output yang cacat maupun serangan injeksi.

Frequently asked questions

Apa itu URL encoding?

URL encoding (juga disebut percent-encoding) mengonversi karakter yang tidak aman dalam URL menjadi tanda % diikuti dua digit heksadesimal. Contohnya, spasi menjadi %20, ampersand menjadi %26, dan hash menjadi %23. Ini memastikan setiap URL valid di browser, header HTTP, atau server apa pun terlepas dari set karakternya. Tanpa ini, URL yang berisi spasi atau karakter khusus akan rusak atau salah ditafsirkan oleh server.

Apa arti %20 dalam URL encoding?

%20 adalah representasi percent-encoded dari karakter spasi. Angka 20 adalah nilai heksadesimal dari ASCII 32 (spasi). Jadi URL 'hello%20world' di-decode kembali menjadi 'hello world'. Dalam query string form HTML Anda terkadang akan melihat + alih-alih %20 untuk spasi — keduanya berarti sama dalam query string tapi tidak dalam path URL.

Apa fungsi URL-encoded?

URL encoding membuat teks apa pun aman untuk disertakan dalam URL dengan mengganti karakter yang tidak aman dengan urutan escape %XX-nya. Tanpa itu, karakter seperti spasi, ampersand, tanda sama dengan, dan huruf non-ASCII akan merusak parsing URL. Decoding membalikkan prosesnya, mengubah urutan %XX kembali menjadi karakter aslinya — berguna untuk membaca tracking link, respons API, dan file log.

Bagaimana cara URL-encode sebuah string?

Tempel teks Anda ke kotak input di atas, pilih mode Encode dan pilih aturan Component. Versi yang ter-encode langsung muncul. Contoh, 'hello world & co.' menjadi 'hello%20world%20%26%20co.' — setiap spasi dan karakter khusus digantikan dengan urutan %XX-nya. Tidak perlu akun, tidak perlu unggah — alat ini meng-encode memakai fungsi bawaan browser Anda.

Bagaimana cara URL-decode sebuah string?

Alihkan toggle mode ke Decode, tempel teks percent-encoded Anda, dan teks polosnya langsung muncul. Contoh, 'caf%C3%A9%3F' di-decode menjadi 'café?'. Jika inputnya berisi urutan yang cacat (seperti % nyasar yang tidak diikuti dua digit hex), alat ini melaporkan error eksaknya sehingga Anda bisa menemukan dan memperbaikinya.

Apa perbedaan antara encodeURI dan encodeURIComponent?

encodeURIComponent dipakai untuk nilai query individual atau segmen path — fungsi ini meng-encode hampir semuanya termasuk : / ? # & = sehingga nilainya tidak bisa merusak struktur URL. Contoh: 'hello world & page=2' → 'hello%20world%20%26%20page%3D2'. encodeURI dipakai untuk URL lengkap — fungsi ini membiarkan karakter struktural seperti : / ? & # tetap utuh sehingga URL-nya tetap berfungsi. Sebagai aturan umum, selalu gunakan encodeURIComponent untuk nilai individual yang Anda sisipkan ke dalam link.

Apa itu percent-encoding?

Percent-encoding adalah nama formal RFC 3986 untuk URL encoding. Setiap byte yang tidak aman ditulis sebagai % diikuti tepat dua digit hex huruf besar. Karakter UTF-8 multi-byte melebar menjadi beberapa urutan %XX: tanda euro '€' menjadi %E2%82%AC, 'é' beraksen menjadi %C3%A9. Spesifikasi ini mendefinisikan sekumpulan karakter 'unreserved' (A–Z, a–z, 0–9, -, _, ., ~) yang tidak pernah di-encode.

Karakter apa saja yang perlu di-encode dalam URL?

Karakter apa pun di luar set unreserved (A–Z, a–z, 0–9, hyphen, underscore, titik, tilde) harus di-percent-encode di sebagian besar konteks URL. Yang paling umum: spasi → %20, & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. Karakter non-ASCII (aksen, emoji) di-encode menjadi beberapa urutan %XX lewat UTF-8.

Mengapa spasi kadang %20 dan kadang +?

Dalam path URL (sebelum ?), spasi harus %20 menurut RFC 3986. Dalam query string, format application/x-www-form-urlencoded lama yang dipakai form HTML meng-encode spasi sebagai + demi keringkasan historis. Keduanya berarti 'spasi' tetapi hanya dalam konteksnya sendiri — tanda + literal dalam nilai query harus di-encode sebagai %2B atau akan salah dibaca sebagai spasi. Toggle + as space alat ini menangani input form-encoded saat decode.

Apa itu %25 dalam URL encoding?

%25 adalah bentuk percent-encoded dari karakter % literal (ASCII 37 = hex 25). Jika Anda butuh tanda persen sungguhan dalam URL — misalnya, dalam kueri pencarian untuk '100%' — Anda harus meng-encode-nya sebagai %25 agar parser tidak memperlakukannya sebagai awal urutan percent-encoded. String '100%' yang di-encode sebagai nilai query menjadi '100%25'.

Bagaimana cara URL-encode di JavaScript?

Gunakan encodeURIComponent() untuk nilai individual: encodeURIComponent('hello world & co.') mengembalikan 'hello%20world%20%26%20co.'. Balikkan dengan decodeURIComponent(). Untuk seluruh URL gunakan encodeURI() / decodeURI() — keduanya melewati karakter struktural. Keduanya sudah bawaan di setiap browser dan Node.js tanpa import yang dibutuhkan.

Bagaimana cara URL-encode di Python?

Gunakan urllib.parse.quote() untuk satu nilai: from urllib.parse import quote; quote('hello world & co.') → 'hello%20world%20%26%20co.'. Untuk decode: unquote('hello%20world%20%26%20co.'). Untuk seluruh dict query string: urlencode({'q': 'hello world', 'page': '2'}) → 'q=hello+world&page=2'. quote_plus() memakai + untuk spasi agar cocok dengan encoding form HTML.

Bagaimana ini dibandingkan dengan CyberChef untuk URL encoding?

CyberChef adalah alat transformasi data multiguna yang luar biasa dari GCHQ, tetapi dirancang untuk pipeline transformasi data yang kompleks — memuatnya hanya untuk meng-encode sebuah string URL berarti menavigasi antarmuka 'recipe'-nya, yang bisa terasa berlebihan. Alat ini fokus: tempel teks Anda, pilih Encode atau Decode, dapatkan hasilnya seketika. Tanpa recipe, tanpa menu. CyberChef membutuhkan lebih banyak klik untuk sampai ke URL encoding secara spesifik; alat ini langsung terbuka ke sana.

Apakah aman meng-encode/decode secara online?

Ya — alat ini 100% lokal. Setiap operasi encode dan decode berjalan di browser Anda memakai fungsi JavaScript bawaan (encodeURIComponent, decodeURIComponent, encodeURI, decodeURI). Teks Anda tidak pernah dikirim ke server mana pun, disimpan, atau dicatat. Anda bahkan bisa offline setelah memuat halaman dan alat ini terus berfungsi. Ini terutama penting saat meng-encode API key, kredensial, atau token.

Apakah alat ini berfungsi offline?

Ya. Semua logikanya berjalan di browser Anda tanpa request jaringan sama sekali. Begitu halaman dimuat Anda bisa menonaktifkan Wi-Fi atau data seluler dan alat ini tetap berfungsi sempurna — berguna untuk meng-encode API key atau kredensial sensitif tanpa satu teks pun yang meninggalkan perangkat Anda.