AI di perangkat — profesional dan privat.

Alat online encoder decoder URL

Encode atau decode URL — empat profil, 37 set karakter.

  • Berjalan di perangkat Anda
  • Profil RFC 3986 ketat dan formulir
  • Menyelamatkan escape rusak alih-alih gagal
  • 10 MB gratis · 20 berkas dengan Pro

Jatuhkan berkas teks berisi URL untuk dikonversi

Satu berkas hingga 10 MB. TXT, CSV, LOG, JSON, dan lainnya.

Pro
0 karakter · 0 B
Cara mengonversi
Arah
Profil pengodean

Dibiarkan harfiah: !'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~

UTF-8 ditambah set lawas satu byte. Set multibyte hanya untuk decode.

Satu nilai query atau segmen path. Sama seperti encodeURIComponent.

Masukan
Keluaran
Tempel URL atau jatuhkan berkas untuk mulai.

Cara encode atau decode sebuah URL

  1. 1

    Pilih Encode atau Decode

    Encode mengubah karakter yang tidak bisa dibawa URL secara harfiah menjadi urutan escape persen. Decode mengembalikannya. Hasil diperbarui saat Anda mengetik, jadi tidak ada yang perlu ditekan untuk satu URL.

  2. 2

    Pilih profil pengodean

    Komponen cocok untuk satu nilai query atau segmen path. RFC 3986 ketat juga meng-escape ! ' ( ) * dan itulah yang dituntut OAuth 1.0 serta penandatanganan permintaan AWS. URL penuh mempertahankan : / ? & = agar tautan tetap bisa dibuka. Formulir sesuai dengan yang dikirim peramban saat mengirim formulir.

  3. 3

    Atur set karakter jika data bukan UTF-8

    Biarkan UTF-8 kecuali Anda bekerja dengan sistem lawas. Query string dari platform lama bisa memuat byte Windows-1252 atau Shift_JIS, dan memilih set yang tepat itulah yang mengubah %E9 menjadi karakter yang dimaksud alih-alih menjadi galat.

  4. 4

    Salin, unduh, atau kirim hasilnya kembali

    Salin menaruh seluruh hasil di papan klip, Unduh menyimpannya sebagai berkas teks, dan Pakai keluaran sebagai masukan memindahkan hasil ke kotak masukan lalu membalik arahnya agar Anda bisa memastikan siklusnya tertutup.

Apa fungsi tiap pengaturan

Setiap kontrol di bawah mengubah byte yang keluar, dan masing-masing ada karena sebuah alur kerja nyata membutuhkannya. Tidak ada yang dikunci: pilihannya sama baik Anda punya akun maupun tidak.

Encode dan decode

Encode mengubah karakter yang tidak bisa dibawa URL secara harfiah menjadi escape persen. Decode membalikkannya. Arah juga menentukan set karakter mana yang ditawarkan, karena keduanya tidak simetris: peramban bisa membaca jauh lebih banyak pengodean lawas daripada yang bisa ditulisnya.

Profil pengodean

Profil adalah kumpulan karakter yang dibiarkan apa adanya. Ini pilihan paling berdampak di halaman ini, dan salah memilih menghasilkan keluaran yang tampak benar tetapi ditolak oleh satu server tertentu. Bagian berikut membandingkan keempatnya.

Set karakter

Biarkan UTF-8 kecuali Anda tahu sebaliknya. Ia menentukan byte apa yang diwakili escape, dan itulah beda antara %E9 terbaca sebagai huruf e beraksen atau menjadi galat. Ini terpisah dari cara berkas yang dijatuhkan dibaca: berkas Windows-1252 sah-sah saja memuat escape UTF-8, dan kedua pengaturan itu benar sekaligus.

Decoding toleran

Menyala secara bawaan. Escape yang rusak membiarkan teks di sekitarnya utuh dan dilaporkan dengan posisi persisnya, alih-alih menggagalkan seluruh teks. Matikan bila Anda ingin kegagalan tegas, misalnya saat memvalidasi bahwa sebuah teks berbentuk sah alih-alih mencoba membacanya.

Pengulangan decoding

Men-decode hingga lima kali, berhenti begitu satu putaran tidak mengubah apa pun. Angka yang dilaporkan adalah kedalaman pengodean yang sebenarnya, bukan nilai pengaturannya: teks yang hanya dikodekan sekali tetap melaporkan satu putaran setinggi apa pun Anda menyetel kontrolnya.

Plus sebagai spasi

Tanda plus berarti spasi pada data formulir dan tidak di tempat lain. Diterapkan per profil: pada mode URL penuh penggantian hanya terjadi setelah tanda tanya pertama, jadi plus harfiah di dalam path tetap selamat. Pada mode komponen dan formulir seluruh teks diperlakukan sebagai query, karena memang begitu.

Escape lawas %uXXXX

Teks yang dihasilkan fungsi escape() lama di JavaScript, dan beberapa platform Microsoft terdahulu, memakai %u diikuti empat digit heksadesimal untuk karakter non-ASCII. Decoder standar menolaknya begitu saja. Nyalakan ini untuk membacanya.

Baris per baris

Mengonversi tiap baris secara terpisah dan mengembalikan akhir barisnya sendiri. Ini pengaturan untuk daftar tautan: meng-encode seluruh berkas sebagai satu teks akan meng-escape pergantian barisnya sendiri dan menghasilkan satu baris yang tak terpakai.

Pangkas spasi di sekeliling

Mati secara bawaan, dan itu disengaja. Spasi justru jenis karakter yang keberadaan percent-encoding-nya untuk dijaga, jadi membuangnya diam-diam akan menggagalkan tujuan alat ini. Nyalakan bila Anda menyalin URL dari surel dan ikut membawa pergantian baris.

Mengapa memakai encoder dan decoder URL?

Peramban, server, dan cache memperlakukan karakter tertentu sebagai struktur: spasi, ampersand, pagar, dan teks non-ASCII perlu di-escape bila ia data dan bukan sintaks. Alat khusus membuat Anda bisa melihat teks persis yang akan dikirim klien HTTP, sebelum Anda merilis kode yang menyusunnya.

Manfaat pengodean URL yang benar

  • Pengiriman aman — karakter tercadang di konten pengguna berhenti merusak pengurai yang memisahkan path, query, dan fragmen.
  • Dukungan Unicode — byte UTF-8 diwakili sebagai urutan % agar teks internasional selamat melewati jalur ASCII.
  • API yang terduga — menyelaraskan diri dengan RFC 3986 mengurangi ketidakcocokan antara front-end, aplikasi seluler, dan framework backend.
  • Lebih sedikit galat 400 — parameter yang terkode benar lebih jarang ditolak gateway atau proxy yang ketat.
  • Penelusuran lebih mudah — bandingkan teks susunan tangan dengan hasil fungsi standar sebelum Anda merilis perbaikan.

Cara kerja pengodean URL

Percent-encoding menulis ulang tiap byte yang tak boleh muncul harfiah di URL sebagai %HH, dengan HH heksadesimal. Karakter mana yang tetap harfiah bergantung pada apakah Anda melindungi URL utuh atau satu komponen — dan hanya itulah yang memisahkan keempat profil di bawah.

Dari karakter ke byte ke escape

  • Karakter menjadi byte lebih dulu — teks diubah menjadi byte dalam set yang dipilih. Dalam UTF-8 huruf e beraksen adalah dua byte dan karakter Jepang tiga byte.
  • Tiap byte diuji — byte yang ada di himpunan aman profil ditulis harfiah; sisanya menjadi % diikuti dua digit heksadesimal.
  • Spasi adalah kasus khusus — pada pengodean formulir spasi menjadi tanda plus alih-alih %20, satu-satunya tempat penggantian itu benar.
  • Decoding menempuh jalur balik — escape dikumpulkan menjadi rentetan byte dan di-decode bersama, karena satu karakter kerap berupa beberapa escape berurutan.

Memilih profil pengodean yang tepat

Keempat profil hanya berbeda pada karakter mana yang dibiarkan apa adanya, tetapi perbedaan itu menentukan apakah sebuah tanda tangan lolos verifikasi dan apakah sebuah tautan masih bekerja. Inilah yang dipertahankan masing-masing dan kapan memakainya.

Komponen

Membiarkan huruf, angka, dan - _ . ! ~ * ' ( ) apa adanya. Setara dengan fungsi standar encodeURIComponent, dan inilah bawaan yang tepat untuk satu nilai query, satu kolom formulir, atau satu segmen path. Pakai ini kecuali salah satu dari tiga profil berikut menggambarkan keadaan Anda.

RFC 3986 ketat

Hanya membiarkan huruf, angka, dan - . _ ~ apa adanya — himpunan tak tercadang menurut spesifikasi, tidak lebih. Lima karakter tambahan yang dipertahankan mode komponen (! ' ( ) *) di sini di-escape. Pakai ini saat menyusun string dasar tanda tangan OAuth 1.0 atau permintaan kanonik AWS Signature Version 4, yang keduanya menuntut himpunan ketat. Ketidakcocokan di sini hanya gagal ketika salah satu dari lima karakter itu muncul di data, dan itulah yang membuatnya termasuk bug tersulit untuk direproduksi.

URL penuh

Mempertahankan pembatas yang memberi bentuk pada URL — : / ? # & = + $ , ; @ — agar tautan utuh tetap bisa dibuka setelah dikodekan. Pakai saat Anda membereskan URL utuh alih-alih menyusun satu. Decoding sengaja tidak simetris pada mode ini: %2F tetap %2F, karena mengubahnya menjadi garis miring akan menambah segmen path yang tadinya tidak ada. Kotak centang Decode juga pembatas membatalkan itu bila Anda ingin teks biasa.

Formulir

Hanya mempertahankan huruf, angka, dan * - . _ , dan menulis spasi sebagai tanda plus. Inilah yang benar-benar dikirim peramban ke jaringan saat mengirim formulir, dan yang dihasilkan URLSearchParams. Perlu diketahui ini bukan satu-satunya definisi yang beredar: quote_plus di Python meng-escape tanda bintang dan mempertahankan tilde, kebalikannya pada kedua hal. Alat ini mengikuti standar web saat ini, karena itulah yang menjadi acuan server penerima.

Set karakter dan sistem lawas

Teks terkode persen adalah rentetan byte, dan karakter apa yang dimaksud byte itu sepenuhnya bergantung pada pengodean yang dipakai sistemnya. Di sinilah alat yang hanya berbicara UTF-8 menyerah, dan ini bagian besar dari pekerjaan yang sebenarnya.

Membaca data lawas

Tiga puluh tujuh set karakter tersedia untuk decode, mencakup rumpun satu byte — Windows-1250 sampai 1258, seri ISO-8859, KOI8-R dan KOI8-U, set Mac, serta IBM866 — ditambah set multibyte Asia Timur Shift_JIS, EUC-JP, ISO-2022-JP, EUC-KR, GBK, GB18030, dan Big5. Hampir semua yang dihasilkan platform PHP, ASP, atau Java sebelum sekitar 2010 akan membutuhkan salah satunya.

Menulis data lawas, dan apa yang tidak mungkin

Dua puluh delapan set tersedia untuk encode: UTF-8 dan seluruh set satu byte di atas. Set multibyte Asia Timur hanya untuk decode, dan batas itu dinyatakan di sini alih-alih diabaikan diam-diam. Karakter yang tak bisa diwakili set tujuan ditulis sebagai rujukan numerik seperti € alih-alih dibuang atau diganti tanda tanya — persis yang dilakukan peramban saat mengirim formulir di halaman berpengodean lawas, sehingga server penerima sudah tahu cara membacanya.

Ketika decoding gagal, dan apa yang harus dilakukan

Sebagian besar alat di kategori ini, dan fungsi standar decodeURIComponent yang menjadi dasarnya, memperlakukan decoding sebagai semua-atau-tidak-sama-sekali. Satu karakter buruk dan Anda menerima pesan galat alih-alih data Anda. Inilah empat hal yang benar-benar salah, dan bagaimana alat ini menangani masing-masing.

  • Escape terpotong — sebuah % dengan kurang dari dua digit heksadesimal di belakangnya, biasanya karena URL terpotong oleh baris log atau kolom teks. Decoding toleran membiarkannya dan melaporkan posisinya.
  • Byte yang tidak sah di set karakter — %E9 sendirian bukan UTF-8 yang sah. Entah datanya berpengodean lawas — pilih dari daftar — atau teksnya memang rusak, dan mode toleran menandai titiknya.
  • Pengodean ganda — %2520 di tempat yang seharusnya %20. Naikkan pengulangan decoding; rincian parameter menunjukkan mana yang terdampak.
  • %uXXXX lawas — sama sekali bukan percent-encoding, melainkan keluaran fungsi escape() lama. Nyalakan escape lawas untuk membacanya.

Memeriksa URL dan parameternya

Tempelkan sesuatu yang tampak seperti URL dan rincian akan muncul di bawah hasil: skema, host, porta, path, dan fragmen, lalu tabel setiap parameter query dengan kunci dan nilainya yang di-decode satu per satu.

Ini ada karena men-decode seluruh URL pelacakan sekaligus menghasilkan satu baris yang tak terbaca, padahal pertanyaan Anda sebenarnya adalah apa isi satu parameter tertentu. Tabel ini men-decode tiap kunci dan nilai secara terpisah, serta menandai yang tampak terkode ganda atau memuat escape rusak — dalam praktiknya biasanya satu parameter saja, paling sering sebuah tujuan pengalihan, dan menemukannya dengan mata di tautan berisi empat belas parameter itulah yang memakan waktu. Rincian ini melaporkan persis karakter yang Anda tempel: ia tidak mengecilkan huruf host, tidak membuang porta bawaan, dan tidak menyelesaikan segmen .., karena diagnosis yang memperbaiki masukannya sendiri telah memusnahkan buktinya.

Hal yang layak diingat

Detail kecil — seperti tanda plus pada pengiriman formulir versus percent-encoding sesungguhnya — menjegal tim ketika framework saling berbeda.

Rujukan cepat

  • Spasi adalah %20 dalam query string, tetapi tanda plus dalam badan application/x-www-form-urlencoded.
  • Hanya karakter tak tercadang (huruf, angka, - . _ ~) yang boleh muncul tanpa pengodean pada pengodean ketat.
  • Pengodean ganda menghasilkan URL lebih panjang dan bisa membingungkan server; %2520 adalah tandanya.
  • Decoder standar gagal pada % yang diikuti heksadesimal tak lengkap, dan saat itu tidak mengembalikan apa pun.
  • Satu karakter Jepang menjadi sembilan karakter keluaran, jadi teks terkode bisa berkali-kali lebih panjang dari teks aslinya.
  • Nama domain terinternasionalisasi memakai Punycode di DNS; pengodean URL menangani path dan query, bukan konversi nama host.

Praktik terbaik

Encode di batas tempat teks tak tepercaya menjadi bagian dari URL, dan decode sekali saja ketika Anda memperlakukannya kembali sebagai data.

  • Encode tiap nilai query satu per satu alih-alih meng-encode seluruh URL dua kali.
  • Catat masukan mentah pengguna terpisah dari teks terkode saat menelusuri analitik atau pengalihan.
  • Utamakan tautan HTTPS saat membagikan URL terkode yang memuat token sensitif.
  • Validasi keluaran hasil decode sebelum menyisipkannya ke HTML untuk menghindari masalah dari tautan berbahaya.
  • Uji kedua arah bila produk Anda mendukung deep link dari surel atau SMS.

Kasus pemakaian ideal

  • Pengembangan web — susun filter pencarian, parameter UTM, dan URI pengalihan OAuth dengan yakin.
  • Integrasi API — samakan perilaku SDK ketika dokumentasi menyebut percent-encoding RFC 3986.
  • QA dan dukungan — reproduksi URL pelanggan tanpa menebak karakter mana yang di-escape.
  • Dokumentasi — tampilkan contoh sebelum-sesudah yang persis untuk integrasi mitra.
  • Skrip migrasi — bandingkan aturan escape lawas dengan yang dihasilkan klien modern.

Berkas, batch, dan batasan

Satu URL diketik atau ditempel; daftarnya datang sebagai berkas. Kedua jalur melewati mesin yang sama dan tunduk pada batas yang sama.

Berkas apa yang bisa dibuka

Teks biasa dan format berbentuk teks: .txt, .log, .csv, .tsv, .md, .json, .xml, .html, .yaml, .ini, .env, .sql, .har, ekstensi kode sumber yang umum, dan pintasan internet .url. Selain itu ditolak dengan menyebut namanya, disertai tautan ke alat yang memang menanganinya: PDF diarahkan ke pengekstrak teks alih-alih diabaikan diam-diam. Pemilih berkas hanya menawarkan format yang berfungsi, jadi Anda tidak mungkin memilih berkas lalu melihat tidak terjadi apa-apa.

Pengodean teks apa yang bisa dibaca

UTF-8, UTF-8 dengan penanda urutan byte, dan UTF-16 dalam kedua urutan bila berkas membawa penanda yang mengenalinya. Berkas UTF-16 tanpa penanda ditolak alih-alih ditebak, karena urutan byte-nya seperti lempar koin dan salah menebak menghasilkan omong kosong yang meyakinkan alih-alih galat. Dengan pengodean apa pun ia datang, dengan itu pula ia pergi, jadi CSV Windows tidak kembali sebagai sesuatu yang salah dibuka Excel.

Apa yang termasuk gratis

Setiap profil pengodean, setiap set karakter yang didukung perangkat, decoding toleran, decoding berulang, escape lawas, konversi baris per baris, dan rincian parameter — ditambah satu berkas sekali jalan hingga 10 MB, serta tempel tanpa batas dalam ukuran yang sama. Tidak ada fitur konversi yang ditahan.

Apa yang ditambahkan Pro

Antrean hingga dua puluh berkas, satu unduhan ZIP untuk seluruh batch, dan pencabutan batas 10 MB — Pro dibatasi oleh kemampuan perangkat Anda, bukan oleh angka tetap yang lebih besar. Batas gratis 10 MB berada di situ karena percent-encoding adalah operasi teks langka yang keluarannya lebih besar daripada masukannya: tiap byte bisa menjadi tiga karakter, jadi 10 MB masuk bisa menjadi 31 juta karakter keluar.

Batasan dan kompatibilitas

Tiga hal yang sengaja tidak dilakukan alat ini. Set karakter multibyte Asia Timur tersedia untuk decode tetapi tidak untuk encode, karena tabelnya tidak bisa diturunkan secara terbalik dari yang disediakan peramban. Decoding berulang berhenti di lima putaran, jauh melampaui kedalaman mana pun yang ditemui dalam praktik. Dan rincian parameter melaporkan URL persis seperti yang diketik alih-alih menormalkannya, jadi ia akan dengan senang hati menunjukkan URL yang malformed — dan itulah maksudnya.

Diukur pada mesin acuan: URL sepanjang 100.000 karakter dikonversi dalam kurang dari satu milidetik, dan dokumen pada batas gratis 10 MB jauh di bawah satu detik. Konversi berlangsung saat Anda mengetik untuk teks hingga sekitar seperempat juta karakter; di atas itu pekerjaan berpindah dari alur antarmuka agar halaman tidak pernah berhenti merespons.

Pertanyaan yang sering diajukan

Bagaimana cara kerja encoder dan decoder URL ini?

Pilih Encode untuk mengubah karakter tercadang menjadi urutan escape persen, atau Decode untuk mengembalikan pengodean persen yang sah menjadi teks biasa. Pilih profil, ketik atau tempel teks Anda, dan hasilnya diperbarui langsung. Salin keluaran dengan satu klik, atau jatuhkan berkas teks untuk mengonversi satu daftar tautan sekaligus.

Apa beda pengodean komponen dan URL penuh?

Mode komponen mengodekan hampir semua karakter tercadang, yang tepat untuk satu kunci atau nilai query maupun segmen path. Mode URL penuh membiarkan pembatas struktural seperti : / ? & = utuh sehingga URL tetap bisa dibuka setelah dikodekan. Samakan decoder dengan yang Anda pakai, atau siklusnya tidak akan tertutup.

Apakah data saya privat dan aman?

Ya. Semuanya berlangsung di perangkat Anda dan tidak ada yang Anda tempel atau jatuhkan dikirim ke mana pun. Itu juga sebabnya alat ini tetap bekerja luring setelah halaman dimuat, dan sebabnya batasan yang ada berkaitan dengan kemampuan perangkat Anda sendiri, bukan server kami.

Apa itu percent-encoding dan bagaimana karakter Unicode ditangani?

Percent-encoding menulis setiap byte yang tidak boleh muncul harfiah dalam URL sebagai % diikuti dua digit heksadesimal, sehingga spasi menjadi %20. Teks non-ASCII lebih dahulu diubah ke UTF-8, lalu tiap byte di-escape, sehingga karakter internasional dan emoji selamat melewati jalur ASCII sesuai RFC 3986. Satu karakter Jepang menjadi sembilan karakter keluaran, itulah sebabnya teks terkode bisa berkali-kali lebih panjang dari yang Anda ketik.

Mengapa decodeURIComponent gagal pada teks saya tetapi alat ini tidak?

Fungsi bawaan JavaScript menggagalkan seluruh teks pada escape rusak yang pertama dan tidak mengembalikan apa pun, jadi satu %E terpotong di ujung baris log menghabiskan seluruh URL Anda. Alat ini melakukan decoding toleran secara bawaan: ia mengembalikan semua yang sah dan menyebutkan posisi karakter setiap urutan yang tak terbaca. Matikan decoding toleran jika Anda lebih suka kegagalan tegas.

Bagaimana memperbaiki URL yang terkode ganda?

Nilai yang melewati encoder dua kali menampilkan %2520 di tempat yang seharusnya %20. Naikkan kontrol pengulangan decoding di atas satu dan alat akan men-decode sampai teks berhenti berubah, lalu memberi tahu berapa kali putaran yang benar-benar dibutuhkan. Rincian parameter juga menandai tiap parameter yang tampak terkode ganda, yang biasanya hanya satu.

Profil mana yang harus dipakai untuk OAuth atau penandatanganan permintaan AWS?

RFC 3986 ketat. Fungsi bawaan encodeURIComponent membiarkan lima karakter tanpa escape — ! ' ( ) * — sedangkan baik string dasar tanda tangan OAuth 1.0 maupun permintaan kanonik AWS Signature Version 4 menuntutnya di-escape. Salah di sini menghasilkan tanda tangan yang hanya ditolak ketika salah satu dari lima karakter itu muncul di data Anda, dan itulah yang membuatnya sulit ditelusuri.

Kapan tanda plus berarti spasi?

Hanya pada data application/x-www-form-urlencoded, yaitu query string dan badan formulir. Tanda plus di dalam path adalah plus harfiah. Alat ini menerapkan aturan per profil, bukan pada seluruh teks, jadi men-decode https://contoh.com/a+b?q=c+d sebagai URL penuh membiarkan path apa adanya dan hanya mengubah plus di query menjadi spasi.

Bisakah saya meng-encode teks yang bukan UTF-8?

Bisa. Alat ini menyediakan 28 set karakter untuk encode — UTF-8 ditambah set lawas satu byte seperti Windows-1252, ISO-8859-5, dan KOI8-R — serta 37 untuk decode, yang juga mencakup set multibyte seperti Shift_JIS, GB18030, Big5, dan EUC-KR. Karakter yang tak bisa diwakili set tujuan ditulis sebagai rujukan numerik alih-alih dibuang, persis seperti yang dilakukan peramban saat mengirim formulir dalam pengodean lawas.

Bisakah saya mengonversi seluruh berkas atau daftar tautan?

Bisa. Jatuhkan .txt, .csv, .log, .json, atau salah satu format teks lain yang diterima, lalu nyalakan baris per baris untuk mengonversi tiap baris secara terpisah sambil menjaga akhir barisnya masing-masing. Gratis mengonversi satu berkas hingga 10 MB; Pro menaikkan antrean ke dua puluh berkas, menambah satu unduhan ZIP untuk seluruh batch, dan mencabut batas ukuran hingga sebatas kemampuan perangkat Anda.

Apakah alat ini gratis dan bisa dipakai luring di ponsel?

Ya. Encoder/decoder URL ini sepenuhnya gratis dan tidak memerlukan akun. Alat ini bekerja di ponsel, tablet, dan komputer, dan setelah halaman dimuat ia tetap bekerja tanpa koneksi internet.

4.8dari 5

dari 521 penilaian

Beri nilai alat ini

Ketuk bintang — hanya sebentar