Utilia

URL Encoder dan Decoder

URL encoder dan decoder gratis. Encode parameter query atau URL lengkap, decode urutan %XX, dan tangani + sebagai spasi. Berjalan di browser Anda.

Mode

Cara menggunakan URL encoder dan decoder

  1. Pilih Encode untuk mengubah teks menjadi bentuk yang aman untuk URL, atau Decode untuk mengubah teks berenkode persen kembali menjadi karakter yang bisa dibaca.
  2. Saat melakukan encode, pilih mode: Komponen untuk satu nilai (seperti parameter query atau segmen path), atau URL lengkap untuk meng-encode alamat utuh sambil mempertahankan strukturnya.
  3. Saat men-decode data yang berasal dari formulir HTML atau query string, aktifkan Anggap + sebagai spasi agar tanda + berubah menjadi spasi.
  4. Tempel teks Anda lalu salin hasilnya. Jika ada urutan persen yang tidak valid, alat ini melaporkan kesalahan alih-alih menebak.

Apa itu URL encoding?

URL hanya boleh berisi himpunan karakter ASCII yang terbatas. Sebagian karakter, seperti /, ?, #, &, dan =, bersifat dicadangkan karena memisahkan bagian-bagian alamat: path, query string, dan fragmen. Karakter lain, seperti spasi, tanda kutip, huruf beraksen, atau emoji, memang tidak diizinkan. URL encoding, juga disebut percent-encoding, mengatasi kedua masalah itu dengan mengganti setiap byte bermasalah dengan % diikuti dua digit heksadesimal.

Teks pertama-tama diubah menjadi byte UTF-8, dan setiap byte dienkode secara terpisah. Spasi menjadi %20, ampersand menjadi %26, é (dua byte dalam UTF-8) menjadi %C3%A9, dan emoji 😀 (empat byte) menjadi %F0%9F%98%80. Karakter yang tidak dicadangkan, yaitu huruf, angka, serta - _ . ~, tidak pernah perlu dienkode.

Mode komponen vs. mode URL lengkap

Memilih mode yang tepat adalah keputusan terpenting, dan salah memilih adalah sumber bug klasik.

Mode komponen bekerja seperti encodeURIComponent di JavaScript. Mode ini meng-encode setiap karakter yang dicadangkan, sehingga hasilnya aman ditempatkan di dalam satu bagian URL. Gunakan untuk nilai parameter query, segmen path, atau apa pun yang diketik pengguna. Misalnya, kata kunci pencarian rock & roll menjadi rock%20%26%20roll. Jika & tidak di-encode, server akan membaca roll sebagai awal parameter baru.

Mode URL lengkap bekerja seperti encodeURI. Mode ini menganggap masukan sudah berupa alamat lengkap dan mempertahankan karakter yang membentuk strukturnya, seperti : / ? # & dan =, sambil meng-encode spasi dan karakter non-ASCII. Gunakan untuk merapikan alamat seperti https://example.com/café menu?q=tea menjadi https://example.com/caf%C3%A9%20menu?q=tea. Jangan memakainya pada nilai tunggal: & di dalam sebuah nilai akan tetap tidak di-encode dan merusak query string.

Patokan yang baik: susun URL dari bagian-bagiannya, encode setiap nilai dengan mode komponen, dan gunakan mode URL lengkap hanya untuk alamat yang Anda terima dalam keadaan sudah tersusun.

Tanda + dan encoding formulir

Formulir HTML yang dikirim dengan application/x-www-form-urlencoded meng-encode spasi sebagai +, bukan %20. Itulah sebabnya URL pencarian sering terlihat seperti ?q=hello+world. Percent-decoding standar membiarkan + apa adanya, karena di dalam path tanda plus memang hanya tanda plus. Saat Anda men-decode query string atau data formulir, aktifkan Anggap + sebagai spasi untuk mendapatkan hello world. Biarkan nonaktif untuk path dan untuk nilai yang membutuhkan + literal, seperti nomor telepon atau data Base64. Tanda plus sungguhan dalam data formulir dikirim sebagai %2B, sehingga tetap di-decode dengan benar dalam kedua kasus.

Privasi

Encode dan decode berjalan sepenuhnya di browser Anda. Apa pun yang Anda tempel, termasuk URL yang mungkin berisi token, ID sesi, atau data pribadi, tidak dikirim ke server dan tidak disimpan.

Pertanyaan yang sering diajukan

Mengapa decode gagal dengan pesan kesalahan “tidak valid”?

Tanda % harus diikuti tepat dua digit heksadesimal, dan byte yang dihasilkan harus membentuk UTF-8 yang valid. String seperti 100%, %G1, atau urutan terpotong seperti %E2%82 tidak dapat di-decode dengan andal, sehingga alat ini melaporkan masalahnya alih-alih menghasilkan teks yang salah. Untuk menyertakan tanda persen literal, encode sebagai %25.

Apa bedanya %20 dan +?

Keduanya bisa mewakili spasi, tetapi dalam konteks yang berbeda. %20 valid di mana saja dalam URL. + berarti spasi hanya di query string berenkode formulir; di tempat lain, + adalah tanda plus literal.

Haruskah saya meng-encode seluruh URL dengan mode komponen?

Hanya jika seluruh URL tersebut merupakan nilai di dalam URL lain, misalnya parameter redirect=. Dalam kasus itu, mode komponen adalah pilihan yang tepat: https://a.com/?x=1 menjadi https%3A%2F%2Fa.com%2F%3Fx%3D1.

Mengapa teks saya ter-encode dua kali?

Encode ganda terjadi saat teks yang sudah di-encode di-encode lagi, sehingga %20 menjadi %2520. Decode sekali untuk memeriksanya, dan pastikan setiap nilai hanya di-encode pada saat dimasukkan ke URL.

Apakah URL encoding menyembunyikan atau melindungi data?

Tidak. Percent-encoding sepenuhnya bisa dibalik dan tidak memberikan keamanan apa pun. Nilai sensitif di URL bisa tersimpan di riwayat browser dan log server, jadi hindari menaruh rahasia di URL sama sekali.