Encoder dan decoder URL
Berjalan di browser Anda; tidak ada yang diunggah
Percent-encode teks untuk URL, decode kembali, atau pecah URL menjadi bagian-bagian dan parameter query-nya.
Text
Encodes everything except letters, digits and - _ . ! ~ * ' ( ). Use it for one query value or path segment.
Encoded
The encoded text appears here as you type.
Apa itu URL encoding?
URL encoding, juga disebut percent-encoding (RFC 3986), mengganti karakter yang tidak diizinkan atau punya arti khusus di URL dengan % diikuti dua digit heksadesimal. Spasi menjadi %20, & menjadi %26, dan / menjadi %2F. Karakter lain diubah dulu menjadi byte UTF-8, jadi é menjadi %C3%A9.
Ini penting karena beberapa karakter membentuk struktur URL itu sendiri. ? memulai query string, & memisahkan parameter, = memisahkan nama dari nilainya, dan # memulai fragment. Jika kata pencarian berisi & dan tidak di-encode, server membacanya sebagai awal parameter baru.
Encode setiap nilai secara terpisah, bukan seluruh URL. Meng-encode URL lengkap sebagai nilai juga meng-encode ://, /, dan ?-nya, sehingga URL rusak; untuk itulah mode URL utuh ada, saat Anda hanya perlu memperbaiki spasi dan karakter khusus di URL yang selebihnya sudah benar.
Cara memakai tool ini
- 1Pilih Encode, Decode, atau Parse. Saat berganti mode, teks Anda tetap ada; Swap (Alt+Shift+S) memindahkan output ke input dan beralih antara Encode dan Decode.
- 2Untuk encode, pilih jenis teksnya: sebuah nilai (
encodeURIComponent), URL utuh (encodeURI), atau data form, di mana spasi menjadi+. Baris di atas editor menjelaskan persis karakter mana yang dipertahankan oleh masing-masing. - 3Untuk decode, tempel teks yang sudah di-encode. Aktifkan + means space untuk data form dan query string yang dikirim form HTML. Jika ada sequence yang rusak atau bukan UTF-8, sequence itu ditandai di editor dan F8 membawa Anda ke sana.
- 4Jika hasilnya masih berisi
%XX, teks di-encode dua kali; Decode again di status bar men-decode-nya sekali lagi. - 5Each line separately memperlakukan setiap baris sebagai nilai tersendiri, untuk daftar nilai. Parse memecah satu URL menjadi scheme, host, port, path, fragment, dan tabel parameter query yang sudah di-decode, yang bisa Anda salin sebagai JSON.
Pemecahan masalah
%harus diikuti dua digit heksadesimal- Teks berisi tanda persen literal, seperti
100%, atau sequence yang terpotong. Tanda persen yang sebenarnya ditulis%25di URL. %E9bukan UTF-8 yang valid di posisi ini- Teks di-encode oleh encoder lama yang memakai Latin-1, bukan UTF-8, sehingga
émenjadi%E9, bukan%C3%A9. Encode ulang teks aslinya, atau minta pengirim memakai UTF-8. +berubah menjadi spasi, atau spasi tetap++berarti spasi hanya di data form (application/x-www-form-urlencoded), seperti query string yang dikirim form HTML. Nyalakan atau matikan + means space sesuai asal teksnya.- Bukan URL absolut
- Parse memerlukan scheme dan host, seperti
https://api.example.com. Path seperti/users?page=2bersifat relatif terhadap sebuah halaman dan tidak bisa di-parse sendirian.
Pertanyaan umum
Apa beda encodeURI dan encodeURIComponent?
encodeURIComponent meng-encode semuanya kecuali huruf, angka, dan - _ . ! ~ * ' ( ), jadi cocok untuk satu nilai. encodeURI membiarkan karakter yang membentuk struktur URL, seperti : / ? # & = +, jadi cocok untuk URL utuh yang hanya perlu diperbaiki karakter tidak amannya.
Spasi sebaiknya %20 atau +?
Di path dan di sebagian besar API, gunakan %20. + berarti spasi hanya di data form, yaitu yang dikirim browser untuk form HTML dan yang dipakai banyak query string. Saat men-decode query string yang dibuat oleh form, aktifkan + means space.
Kenapa Parse menampilkan URL yang berbeda dari yang saya tempel?
Parse memakai URL parser milik browser, yang menormalkan URL: mengubah scheme dan host menjadi huruf kecil, menghapus port default seperti :443, dan percent-encode spasi serta karakter non-ASCII. Copy URL menyalin bentuk yang sudah dinormalkan itu.
Apakah input saya dikirim ke server?
Tidak. Encode, decode, dan parsing berjalan di browser Anda, dan tidak ada yang Anda tempel yang diunggah. Agar tidak hilang saat reload, apa yang Anda tempel disimpan di session storage tab ini sampai Anda menghapusnya atau menutup tab. Copy link menaruh input di link setelah tanda #, bagian yang tidak pernah dikirim browser ke server, tetapi siapa pun yang Anda beri link bisa membacanya.