Kod dan nyahkod URL

**URL:** `/url-encode-decode/` **URL:** `/url-encode-decode/` **Schema:** `WebApplication` + `FAQPage` + `BreadcrumbList`

Semua pengiraan dijalankan dalam pelayar. Tiada apa yang anda masukkan dihantar ke pelayan.

01 kalkulator

Hasil dikemas kini semasa menaip. Ctrl/Cmd+Enter menyalin hasil utama.

Hasil

    Tunjuk kerja

      Pengekodan dan Nyahkod URL menggunakan pengekodan peratus RFC 3986 pada teks dan membalikkan jujukan %HH kembali kepada aksara. Mod komponen mengekod aksara terpelihara seperti /, ? dan & supaya mereka boleh duduk dengan selamat di dalam satu parameter pertanyaan. Mod URI penuh mengekalkan pembatas struktur supaya alamat lengkap kekal sebagai pautan yang boleh digunakan. Pengendalian ruang menawarkan kedua-dua %20 dan tanda tambah pengekodan borang.

      Semua pengekodan dan penyahkodan berjalan dalam penyemak imbas anda. Tiada apa-apa yang anda tampal dihantar ke pelayan.

      Kod teks untuk kegunaan selamat dalam URL

      Concept diagram: Input leads to Kod teks untuk kegunaan selamat da… leads to HasilInputKod teks untuk kegunaanselamat da…Hasil
      Kod teks untuk kegunaan selamat dalam URL.

      Pengekodan peratus menggantikan bait yang tidak selamat atau terpelihara dengan tanda peratus diikuti dengan dua digit heksadesimal. Digit ialah nilai bait, biasanya daripada UTF-8. Masukkan rentetan, pilih mod komponen atau URI penuh dan salin hasil yang dikodkan ke dalam rentetan pertanyaan, segmen laluan atau sasaran ubah hala.

      Watak-watak yang sudah berada dalam set tanpa simpanan melalui tidak berubah. Semua yang lain menjadi urutan %HH dalam mod komponen. Pengekodan boleh diterbalikkan apabila peraturan yang sama digunakan pada penyahkod; mencampurkan pengekodan borang tambah tanda dengan gaya laluan %20 ialah sumber biasa bagi perjalanan pergi dan balik yang rosak.

      Nyahkod rentetan yang dikodkan peratus

      Scale bar: 1 Unit input equals 1.8 Unit output1 Unit input1.8 Unit output
      Nyahkod rentetan yang dikodkan peratus.

      Penyahkodan mencari setiap % diikuti dengan dua digit heks, menukar pasangan itu kepada bait dan membina semula teks asal dengan pengekodan aksara yang dipilih. % atau % tunggal dengan digit bukan heks ialah ralat. Tanda tambah boleh dipilih sebagai ruang apabila input datang daripada badan application/x-www-form-urlencoded.

      Pengekodan bersarang muncul apabila nilai dikodkan dua kali. Penyahkodan sekali mungkin masih meninggalkan urutan %25 yang mewakili peratus literal. Nyahkod semula hanya apabila lapisan kedua itu disengajakan; penyahkodan dua buta merosakkan data yang mengandungi aksara % sebenar.

      Fahami watak terpelihara dan tidak terpelihara

      Concept diagram: Input leads to Fahami watak terpelihara dan tidak… leads to HasilInputFahami watakterpelihara dan tidak…Hasil
      Fahami watak terpelihara dan tidak terpelihara.

      RFC 3986 membahagikan ASCII kepada aksara tidak terpelihara yang tidak memerlukan pengekodan dalam URI dan aksara terpelihara yang membawa maksud struktur seperti pembatas. Huruf, digit dan -_.~ tidak disimpan secara literal. Tanda tersimpan seperti /, ? dan & mestilah dikodkan peratus apabila ia muncul sebagai data dan bukannya sebagai sintaks yang membingkai URL.

      Tidak disimpan: A kepada Z, a kepada z, 0 kepada 9, sempang -, garis bawah _, noktah ., tilde ~

      Terpelihara (gen-delims): `: / ?

      Terpelihara (sub-delim): ! $ & ' ( ) * + , ; =

      Aksara yang tidak ditempah kekal literal. Aksara tersimpan mesti dikodkan apabila ia muncul sebagai data dan bukannya sebagai pembatas. Tanda soal di dalam nilai parameter ialah data; tanda soal yang memulakan rentetan pertanyaan ialah struktur. Pemilihan mod ialah cara kalkulator mengetahui peranan yang dimainkan oleh setiap watak.

      Mengekodkan keseluruhan URL berbanding satu parameter

      Comparison chart of Option A versus Option B across Case 1, Case 2, Case 3Case 1Case 2Case 3Option AOption B
      Mengekodkan keseluruhan URL berbanding satu parameter.

      Pengekodan URI penuh, serupa dengan JavaScript encodeURI, meninggalkan aksara struktur sahaja supaya https:// dan garis miring laluan kekal. Pengekodan komponen, serupa dengan encodeURIComponent, mengekod aksara tersebut supaya nilai boleh diletakkan di dalam parameter tanpa melanggar URL sekeliling. Memilih mod yang salah sama ada memusnahkan pautan atau meninggalkan pembatas yang membahagikan pertanyaan secara tidak betul.

      InputFull-URI styleComponent style
      https://example.com/a bhttps://example.com/a%20bhttps%3A%2F%2Fexample.com%2Fa%20b
      red&bluered&bluered%26blue
      a=ba=ba%3Db

      Pengekodan keseluruhan URL dengan mod komponen memusnahkannya sebagai pautan: titik bertindih skema dan garis miring menjadi %3A dan %2F. Pengekodan parameter tunggal dengan mod URI penuh meninggalkan & dan = utuh, yang membahagikan pertanyaan secara tidak betul. Pilih mod yang sepadan dengan slot yang akan diduduki oleh rentetan.

      Mengekodkan garis miring dan tanda soal

      Concept diagram: Input leads to Mengekodkan garis miring dan tanda… leads to HasilInputMengekodkan garismiring dan tanda…Hasil
      Mengekodkan garis miring dan tanda soal.

      Rentetan lekapan / dan ? dalam mod komponen menjadi %2F%20dan%20%3F. Garis miring dan tanda soal ialah pembatas dikhaskan yang dianggap di sini sebagai teks muatan, jadi setiap satunya dilepaskan. Ruang menjadi %20, manakala huruf dalam dan tidak disimpan dan melepasi tidak berubah dari kiri ke kanan merentas rentetan.

      CharacterReasonEncoded
      /reserved path delimiter%2F
      spacenot unreserved%20
      a, n, dunreserved lettersunchanged
      ?reserved query delimiter%3F

      Langkah melalui rentetan dari kiri ke kanan: mengekod /, mengekod ruang, lulus dan, mengekod ruang, mengekod ?. Hasil %2F%20and%20%3F selamat untuk diletakkan dalam parameter pertanyaan bernama, sebagai contoh, q. Menggunakan mod URI penuh pada rentetan yang sama akan meninggalkan / dan ? literal, yang betul hanya apabila aksara tersebut dimaksudkan sebagai struktur dan bukannya sebagai teks muatan.

      Fahami %20 berbanding tanda tambah

      Comparison chart of Option A versus Option B across Case 1, Case 2, Case 3Case 1Case 2Case 3Option AOption B
      Fahami %20 berbanding tanda tambah.

      Ruang dikodkan sebagai %20 dalam laluan URI dan dalam rentetan pertanyaan moden yang mengikuti RFC 3986. Borang HTML yang diserahkan sebagai application/x-www-form-urlencoded secara sejarah mengekod ruang sebagai + sebaliknya. Kedua-dua konvensyen muncul dalam trafik pengeluaran, dan menganggapnya sama adalah pepijat pengekodan ruang yang paling biasa apabila menyahkod input bercampur.

      ContextSpace encoding
      Path segment%20
      RFC 3986 query%20
      Form body / legacy query+

      Data log masuk tambah literal mesti dikodkan sebagai %2B atau penyahkod borang akan menganggapnya sebagai ruang. Kalkulator melabelkan konvensyen ruang yang aktif supaya + yang dinyahkod tidak disalah anggap sebagai aksara tambah apabila mod borang dihidupkan dan %20 tidak ditolak apabila mod laluan dihidupkan.

      Pecahkan URL kepada bahagian-bahagiannya

      Concept diagram: Input leads to Pecahkan URL kepada bahagian-bahag… leads to HasilInputPecahkan URL kepadabahagian-bahag…Hasil
      Pecahkan URL kepada bahagian-bahagiannya.

      URL biasa mempunyai skema, hos, port pilihan, laluan, rentetan pertanyaan dan serpihan, dan peraturan pengekodan berbeza mengikut bahagian. Pembatas struktur seperti ://, /, ?, &, = dan # kekal literal apabila mereka membingkai alamat.

      Nama parameter, nilai parameter dan segmen laluan yang membawa data dikodkan secara individu dalam mod komponen sebelum pembatas tersebut menyertainya.

      https://example.com:443/search?q=a%20b&lang=en#top
      └─┬─┘   └─────┬─────┘ └─┬──┘ └───────┬───────┘ └┬┘
      scheme       host     path        query      fragment
      PartRole
      SchemeProtocol, such as https
      HostDomain or IP, with optional port
      PathResource location, slash-separated
      QueryParameter list after ?, joined by &
      FragmentClient-side location after #, not sent to the server in the request URI the same way

      Kodkan nama dan nilai parameter secara individu dalam mod komponen, kemudian gabung dengan literal & dan =. Kod segmen laluan secara individu jika ia mengandungi ruang atau aksara tersimpan, mengekalkan garis miring yang memisahkan segmen secara literal.

      Baca jadual pengekodan aksara

      Concept diagram: Input leads to Baca jadual pengekodan aksara leads to HasilInputBaca jadual pengekodanaksaraHasil
      Baca jadual pengekodan aksara.

      Jadual di bawah menyenaraikan aksara terpelihara dan tidak selamat biasa dengan bentuk peratusnya di bawah pengekodan UTF-8 bait. Ruang menjadi %20, ampersand %26 dan cincang %23. Aksara bukan ASCII berkembang kepada berbilang unit %HH kerana setiap bait UTF-8 dikodkan secara berasingan dan bukannya sebagai glif abstrak tunggal.

      CharPercentNotes
      space%20Or + in form encoding
      !%21
      #%23Fragment delimiter
      $%24
      &%26Query pair delimiter
      '%27
      (%28
      )%29
      +%2BLiteral plus
      ,%2C
      /%2FPath delimiter
      :%3AScheme / host separator
      ;%3B
      =%3DParameter assignment
      ?%3FQuery start
      @%40Userinfo separator
      [%5B
      ]%5D

      Teks bukan ASCII pertama kali dinyatakan sebagai UTF-8 bait, kemudian setiap bait dikodkan peratus. Oleh itu, aksara tunggal boleh berkembang kepada dua atau tiga unit %HH. Selam mendalam pengekodan aksara untuk Shift JIS dan set warisan serupa secara langsung dengan alat Base64; halaman ini memaut dan bukannya mengulangi katalog itu.

      Soalan lazim

      Apakah pengekodan peratus?

      Pengekodan peratus menggantikan bait dengan % diikuti dengan dua digit perenambelasan nilai bait tersebut. Ia membolehkan aksara simpanan dan bukan ASCII bergerak ke dalam URL tanpa dibaca sebagai sintaks. Penyahkodan membalikkan penggantian.

      Bilakah pengekodan komponen harus digunakan?

      Gunakan pengekodan komponen untuk nama atau nilai parameter tunggal, segmen laluan yang merupakan data tulen atau sebarang rentetan yang akan disisipkan di sebelah pembatas struktur. Ia mengekod /, ?, & dan = supaya mereka tidak boleh membahagikan URL.

      Bilakah pengekodan URI penuh harus digunakan?

      Gunakan pengekodan URI penuh apabila input sudah menjadi URL lengkap dan hanya aksara yang menyalahi undang-undang seperti ruang harus berubah. Tanda titik berstruktur dan garis miring kekal literal supaya hasilnya kekal sebagai alamat yang boleh diklik.

      Mengapakah / dan ? menjadi %2F%20dan%20%3F?

      Dalam mod komponen, garis miring dan tanda soal dianggap sebagai data, jadi ia mengekod kepada %2F dan %3F. Ruang menjadi %20. Huruf dalam dan tidak disimpan dan kekal seperti sedia ada.

      Adakah + sama dengan %20?

      Tidak. %20 ialah pengekodan RFC 3986 untuk ruang. + bermaksud ruang hanya dalam data application/x-www-form-urlencoded. Tambah literal mestilah %2B atau penyahkod borang akan mengubahnya menjadi ruang.

      Apakah aksara yang tidak memerlukan pengekodan?

      Set tidak terpelihara: huruf, digit, sempang, garis bawah, noktah dan tilde. Watak tersebut kekal literal dalam kedua-dua mod. Pengekodannya masih berfungsi tetapi menambah panjang yang tidak perlu.

      Bagaimanakah aksara bukan ASCII dikodkan?

      Ia ditukar kepada UTF-8 bait dahulu, kemudian setiap bait dikodkan peratus. Satu aksara yang boleh dilihat boleh menjadi berbilang jujukan %HH. Penyahkodan mesti menggunakan UTF-8 untuk membina semula teks asal.

      Adakah penyahkodan dua kali membetulkan URL yang rosak?

      Hanya jika nilai itu sengaja dikodkan dua kali. Jika tidak, pas kedua merosakkan jujukan literal % yang merupakan sebahagian daripada data. Nyahkod sekali, periksa dan nyahkod semula hanya apabila corak %25 menunjukkan lapisan kedua.

      Adakah ini sama dengan Base64?

      Tidak. Pengekodan peratus melarikan diri daripada aksara untuk URI. Base64 memetakan bait sewenang-wenangnya kepada abjad 64 aksara untuk pengangkutan dalam protokol teks. Gunakan setiap satu untuk tugasnya sendiri.

      Adakah URL yang ditampal dimuat naik?

      Tidak. Pengekodan dan penyahkodan dijalankan dalam penyemak imbas sahaja. Rentetan pertanyaan yang mengandungi token atau serpihan sesi tidak dihantar ke pelayan oleh alat ini.

      Ringkasan

      Pengekodan URL dan Nyahkod peratus mengekod dan menyahkod teks di bawah peraturan RFC 3986, dengan mod berasingan untuk URI penuh dan komponen individu. Lekapan / dan ? menjadi %2F%20dan%20%3F dalam mod komponen. Ruang menggunakan %20 dalam konteks URI dan mungkin menggunakan + dalam pengekodan bentuk, yang merupakan konvensyen yang berbeza.

      Aksara terpelihara mengekalkan maknanya hanya apabila dibiarkan literal sebagai struktur; mengekodnya apabila ia dimuatkan. Semua kerja kekal pada peranti.