Utilia

URL kodētājs un atkodētājs

Bezmaksas URL kodētājs un atkodētājs. Procentkodējiet vaicājuma parametrus vai pilnus URL, atkodējiet %XX secības un apstrādājiet + kā atstarpi pārlūkprogrammā.

Režīms

Kā lietot URL kodētāju un atkodētāju

  1. Izvēlieties Kodēt, lai pārvērstu tekstu URL drošā formā, vai Atkodēt, lai procentkodētu tekstu pārvērstu atpakaļ lasāmās rakstzīmēs.
  2. Kodējot, izvēlieties režīmu: Komponents vienai vērtībai (piemēram, vaicājuma parametram vai ceļa segmentam) vai Pilns URL, lai kodētu pilnu adresi, saglabājot tās struktūru.
  3. Atkodējot datus no HTML veidlapas vai vaicājuma virknes, ieslēdziet Uzskatīt + par atstarpi, lai + zīmes kļūtu par atstarpēm.
  4. Ielīmējiet tekstu un nokopējiet rezultātu. Ja procentu secība ir nepareiza, rīks ziņo par kļūdu, nevis min.

Kas ir URL kodēšana?

URL var saturēt tikai ierobežotu ASCII rakstzīmju kopu. Dažas rakstzīmes, piemēram, /, ?, #, & un =, ir rezervētas, jo tās atdala adreses daļas: ceļu, vaicājuma virkni un fragmentu. Citas, piemēram, atstarpes, pēdiņas, burti ar diakritiskajām zīmēm vai emocijzīmes, vienkārši nav atļautas. URL kodēšana, ko sauc arī par procentkodēšanu, atrisina abas problēmas, aizstājot katru problemātisko baitu ar %, kam seko divi heksadecimāli cipari.

Teksts vispirms tiek pārvērsts UTF-8 baitos, un katrs baits tiek kodēts atsevišķi. Atstarpe kļūst par %20, zīme „&“ – par %26, é (divi baiti UTF-8) – par %C3%A9, bet emocijzīme 😀 (četri baiti) – par %F0%9F%98%80. Nerezervētas rakstzīmes, tas ir, burti, cipari un - _ . ~, kodēšanu nekad neprasa.

Komponenta režīms pret pilna URL režīmu

Pareiza režīma izvēle ir svarīgākais lēmums, un kļūda tajā ir klasisks kļūdu avots.

Komponenta režīms darbojas kā JavaScript encodeURIComponent. Tas kodē katru rezervēto rakstzīmi, tāpēc rezultātu var droši ievietot vienā URL daļā. Izmantojiet to vaicājuma parametru vērtībām, ceļa segmentiem vai jebkam, ko ierakstījis lietotājs. Piemēram, meklēšanas frāze rock & roll kļūst par rock%20%26%20roll. Ja & nebūtu iekodēts, serveris roll uztvertu kā jauna parametra sākumu.

Pilna URL režīms darbojas kā encodeURI. Tas pieņem, ka ievade jau ir pilna adrese, un saglabā rakstzīmes, kas tai piešķir struktūru, piemēram, : / ? # & un =, bet kodē atstarpes un ne-ASCII rakstzīmes. Izmantojiet to, lai sakārtotu adresi, piemēram, https://example.com/café menu?q=tea, par https://example.com/caf%C3%A9%20menu?q=tea. Neizmantojiet to atsevišķām vērtībām: & vērtības iekšpusē paliktu nekodēts un salauztu vaicājuma virkni.

Laba pamatnoteikums: veidojiet URL no daļām, katru vērtību kodējiet komponenta režīmā un pilna URL režīmu izmantojiet tikai adresēm, kuras saņemat jau salikta veidā.

Zīme + un veidlapu kodēšana

HTML veidlapas, kas iesniegtas ar application/x-www-form-urlencoded, atstarpes kodē kā +, nevis %20. Tāpēc meklēšanas URL bieži izskatās kā ?q=hello+world. Standarta procentatkodēšana + atstāj negrozītu, jo ceļā plus ir tikai plus. Atkodējot vaicājuma virkni vai veidlapas datus, ieslēdziet Uzskatīt + par atstarpi, lai iegūtu hello world. Ceļiem un vērtībām, kurās svarīgs burtisks +, piemēram, tālruņa numuriem vai Base64 datiem, atstājiet to izslēgtu. Īsta plusa zīme veidlapas datos tiek sūtīta kā %2B, tāpēc tā tiek pareizi atkodēta abos gadījumos.

Privātums

Kodēšana un atkodēšana notiek pilnībā jūsu pārlūkprogrammā. Nekas, ko ielīmējat, ieskaitot URL, kuros var būt žetoni, sesiju ID vai personas dati, netiek sūtīts uz serveri vai glabāts.

Biežāk uzdotie jautājumi

Kāpēc atkodēšana neizdodas ar kļūdu „nepareiza“?

Aiz % jābūt tieši diviem heksadecimāliem cipariem, un iegūtajiem baitiem jāveido derīgs UTF-8. Virknes, piemēram, 100%, %G1 vai saīsināta secība kā %E2%82, nevar droši atkodēt, tāpēc rīks ziņo par problēmu, nevis rada nepareizu tekstu. Lai iekļautu burtisku procenta zīmi, kodējiet to kā %25.

Kāda ir atšķirība starp %20 un +?

Abi var apzīmēt atstarpi, bet dažādos kontekstos. %20 ir derīgs jebkur URL. + nozīmē atstarpi tikai ar veidlapu kodētās vaicājuma virknēs; citur tā ir burtiska plusa zīme.

Vai visu URL jākodē komponenta režīmā?

Tikai tad, ja viss URL pats ir vērtība citā URL, piemēram, parametrs redirect=. Tādā gadījumā komponenta režīms ir tieši piemērots: https://a.com/?x=1 kļūst par https%3A%2F%2Fa.com%2F%3Fx%3D1.

Kāpēc mans teksts ir kodēts divreiz?

Dubultā kodēšana notiek, kad jau kodēts teksts tiek kodēts vēlreiz, pārvēršot %20 par %2520. Atkodējiet vienreiz, lai pārbaudītu, un pārliecinieties, ka katra vērtība tiek kodēta tikai brīdī, kad tā tiek ievietota URL.

Vai URL kodēšana slēpj vai aizsargā datus?

Nē. Procentkodēšana ir pilnībā atgriezeniska un nedod nekādu drošību. Jutīgas vērtības URL var nonākt pārlūkprogrammas vēsturē un serveru žurnālos, tāpēc vispār izvairieties likt noslēpumus URL.