Bahasa: Bahasa Indonesia

tools / url

url/

Encode / decode URL, plus urai URL lengkap menjadi bagian-bagiannya dan tabel parameter query.

Teks asli

Hasil enkode

Urai URL

Pertanyaan umum

Apa bedanya encodeURIComponent dan encodeURI, dan mana yang sebaiknya dipakai?

Pakai encodeURIComponent untuk nilai parameter atau satu segmen path, dan encodeURI untuk seluruh URL. Yang pertama juga mengubah karakter bermakna khusus seperti : / ? & = # menjadi %XX, jadi hanya cocok untuk satu bagian URL; yang kedua mempertahankannya sehingga struktur URL tetap utuh, tetapi tidak menangani & atau = di dalam nilai parameter. Huruf, angka, dan - _ . ! ~ * ' ( ) tidak dienkode oleh keduanya.

Mengapa spasi menjadi %20, dan apakah + menjadi spasi saat dekode?

Enkode di sini menulis spasi sebagai %20, bukan +. Saat dekode, + di kotak tetap apa adanya dan tidak menjadi spasi, karena decodeURIComponent tidak melakukan konversi itu; hanya tabel parameter query di bawah "Urai URL" yang memperlakukan + sebagai spasi, mengikuti aturan formulir. Untuk mendekode sesuatu seperti a+b dari pengiriman formulir, ganti dulu + dengan spasi secara manual.

Apa yang harus dilakukan jika muncul "bukan urutan UTF-8 yang valid" saat dekode?

Rangkaian %XX itu bukan UTF-8. Kasus paling umum adalah teks Mandarin yang dienkode dengan GBK oleh situs lama, seperti %D6%D0; seperti decodeURIComponent di browser, alat ini hanya menerima UTF-8, sehingga menampilkan error dan menunjuk posisi terjadinya. Konten GBK bisa dikonversi dengan alat yang mendukung GBK, misalnya unquote(s, encoding='gbk') di Python. Error yang sama muncul jika teks terpotong saat disalin, misalnya %E4%B8 yang kekurangan byte terakhirnya.

Apa yang harus dilakukan jika muncul "% tidak diikuti dua digit heksadesimal"?

Teks berisi tanda persen yang belum dienkode, seperti 100% atau 50%off. Pada URL encoding, tanda persen memulai sebuah escape dan harus diikuti dua digit heksadesimal. Ubah % itu menjadi %25 lalu dekode lagi; pesan error memberi tahu karakter ke berapa itu.

Bagaimana jika hasil dekode masih berisi %XX?

Kemungkinan besar dienkode dua kali; misalnya %2520 didekode sekali menjadi %20. Dekode sekali lagi: klik "⇄ Jadikan hasil sebagai input" untuk memindahkan hasil ke kotak input, lalu klik "Dekode" sekali lagi.

Apakah hasilnya sama dengan URL encoding di PHP, Python, atau Java?

Sebagian besar sama, dengan beberapa perbedaan detail. encodeURIComponent mendekati rawurlencode di PHP dan urllib.parse.quote(s, safe='') di Python, kecuali ia tidak mengenkode ! ' ( ) *. URLEncoder di Java dan urlencode di PHP menulis spasi sebagai +, sedangkan alat ini menulis %20. Saat berintegrasi dengan sistem lain, ikuti aturan dekode yang benar-benar dipakai penerima.

Mengapa "Urai URL" bilang protokol tidak ada, atau menampilkan sesuatu yang berbeda dari yang saya ketik?

Pengurai membutuhkan URL lengkap yang diawali protokol seperti https://; domain atau path saja akan menimbulkan error. Hasilnya berasal dari pengurai URL bawaan browser, sehingga dinormalisasi: nama host diubah ke huruf kecil, port menampilkan "(port default)" jika tidak ditulis atau sama dengan port default, karakter non-ASCII di path tampil sebagai %XX dengan satu baris tambahan untuk path yang sudah didekode, dan kunci serta nilai di tabel query sudah didekode.

Apakah URL yang saya masukkan dikirim ke server?

Tidak. Enkode, dekode, dan penguraian semuanya berlangsung di browser Anda, jadi token, nomor ponsel, dan parameter lain di dalam URL tidak pernah meninggalkannya.