tigtools

Pengekod / Penyahkod URL

Enkodkan teks untuk digunakan dalam URL, atau tukar escape seperti %20 kembali kepada teks yang boleh dibaca. Pilih Komponen untuk nilai tunggal atau URL Penuh untuk alamat lengkap.

Berjalan dalam pelayar anda Tanpa pendaftaran

Arah
Apa yang anda kodkan?

Komponen (encodeURIComponent) mengekodkan semua aksara kecuali huruf, digit dan - _ . ! ~ * ' ( ). Gunakannya untuk satu nilai pertanyaan, medan borang atau segmen laluan.

Cara menggunakannya

  1. Pilih Enkod atau Nyahkod.
  2. Pilih Komponen untuk nilai tunggal (seperti satu parameter pertanyaan) atau URL Penuh untuk alamat lengkap.
  3. Taip atau tampal teks anda. Hasilnya muncul serta-merta di sebelah kanan (atau di bawah pada telefon).
  4. Salin hasilnya, atau gunakan “Gunakan output sebagai input” untuk membalikkan operasi dan menyemak round trip.

Cara ia berfungsi

URL hanya boleh mengandungi set aksara ASCII yang terhad. Semua yang lain, termasuk ruang, huruf beraksen dan emoji, ditulis sebagai escape peratus: aksara itu ditukar kepada bait UTF-8 dan setiap bait menjadi % diikuti dua digit perenambelasan. Ruang menjadi %20, é menjadi %C3%A9 dan € menjadi %E2%82%AC.

Mod Component menggunakan encodeURIComponent dan decodeURIComponent JavaScript. Ia mengekod setiap aksara yang mempunyai makna khas dalam URL, termasuk / ? # & = + : dan @, supaya hasilnya boleh diletakkan dengan selamat di dalam nilai pertanyaan atau satu segmen laluan. Ia hanya membiarkan A–Z, a–z, 0–9 dan - _ . ! ~ * ' ( ) tidak berubah.

Mod Full URL menggunakan encodeURI dan decodeURI. Ia menganggap input sudah menjadi URL lengkap dan membiarkan aksara terpelihara ; , / ? : @ & = + $ # tidak berubah, supaya alamat itu terus berfungsi. Semasa menyahkod, decodeURI juga membiarkan escape aksara terpelihara itu: %2F kekal %2F, kerana menukarnya kepada / akan mengubah makna URL.

Pilihan form-data mengikut application/x-www-form-urlencoded, format yang digunakan pelayar semasa menghantar borang HTML: ruang ditulis sebagai + dan bukannya %20. Apabila menyahkod dengan pilihan ini, setiap + menjadi ruang; tanda tambah sebenar mesti ditulis sebagai %2B.

Input tidak sah tidak pernah dibuang. Jika % tidak diikuti dua digit perenambelasan, atau jujukan escape tidak membentuk UTF-8 yang sah, alat ini menunjukkan tempat masalah itu dan mengekalkan teks anda supaya anda boleh membetulkannya.

Contoh

Meletakkan nilai ke dalam rentetan pertanyaan

Untuk mencari “Rock & Roll” di https://example.com/search?q=…, kodkan hanya nilainya dalam mod Component: Rock%20%26%20Roll. Tanpa pengekodan, & akan menamatkan parameter q dan memulakan parameter baharu bernama “ Roll”.

Membetulkan URL dengan ruang dan aksen

Dalam mod URL penuh, https://example.com/menu/crème brûlée.html menjadi https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. Garis miring dan titik bertindih kekal seperti sedia ada, jadi pautan masih berfungsi.

Membaca data borang yang dilog

Log pelayan menunjukkan name=Jane+Doe&city=S%C3%A3o+Paulo. Nyahkodnya dalam mod komponen dengan “Anggap + sebagai ruang” dihidupkan untuk membaca name=Jane Doe&city=São Paulo.

Soalan Lazim

Apakah perbezaan antara encodeURI dan encodeURIComponent?

encodeURIComponent menukar aksara-aksara yang memisahkan bahagian URL (/ ? # & = + : @ dan lain-lain) kepada bentuk escape, jadi ia dimaksudkan untuk satu bahagian URL. encodeURI mengekalkan aksara-aksara tersebut, jadi ia dimaksudkan untuk URL lengkap. Menggunakan encodeURI pada nilai pertanyaan ialah pepijat biasa: & atau = di dalam nilai tidak akan ditukar kepada bentuk escape dan akan merosakkan rentetan pertanyaan.

Perlukah ruang menjadi %20 atau +?

Dalam laluan URL, ruang sentiasa %20. Dalam rentetan pertanyaan, kedua-duanya muncul: %20 sah di mana-mana, manakala + bermaksud ruang hanya dalam data berkod borang (application/x-www-form-urlencoded), iaitu cara borang HTML dan banyak rangka kerja pelayan membaca rentetan pertanyaan. Jika tidak pasti, gunakan %20.

Mengapa saya mendapat ralat semasa menyahkod?

Penyahkodan gagal apabila tanda % tidak diikuti dua digit heksadesimal (contohnya “50% off”), atau apabila bait escape bukan UTF-8 yang sah; ini biasanya bermaksud teks asal dikodkan dengan set aksara lama seperti Latin-1 (é sebagai %E9, bukan %C3%A9). Mesej ralat menunjukkan kedudukan masalah.

Mengapa %2F tidak bertukar menjadi garis condong dalam mod URL Penuh?

decodeURI sengaja mengekalkan escape untuk aksara terpelihara seperti / ? # & dan =, kerana menyahkodnya boleh mengubah cara URL dibahagikan kepada bahagian. Gunakan mod Komponen untuk menyahkod setiap escape.

Aksara manakah yang tidak pernah dikodkan?

Kedua-dua mod mengekalkan A–Z, a–z, 0–9 dan - _ . ! ~ * ' ( ) tanpa perubahan. Mod URL Penuh juga mengekalkan ; , / ? : @ & = + $ dan # tanpa perubahan.

Privasi

Pengekodan dan penyahkodan berjalan sepenuhnya dalam pelayar anda dengan fungsi JavaScript terbina dalam. Teks dan URL anda tidak dimuat naik, disimpan atau disertakan dalam analitik.