Kigeuzi cha Bure

Kisimbaji cha URL / Avkodare

Sanidi na usimbue URLs na vijenzi vya URI papo hapo kwenye kivinjari chako. Bure, ya faragha, na hakuna upakiaji unaohitajika.

Au

Kuhusu zana hii

Usimbaji wa URL (rasmi usimbaji-asilimia, unaofafanuliwa katika RFC 3986) hutafsiri vibambo ambavyo vina maana maalum katika URLs - nafasi, mikwaruzo, ampersands, alama za hashi - katika hali salama kwa kutumia alama za asilimia zinazofuatwa na tarakimu za heksi. Herufi ya nafasi inakuwa %20 (au + katika miktadha iliyosimbwa kwa fomu), ampersand inakuwa %26, na kadhalika. Bila usimbaji huu, herufi maalum zinaweza kufasiriwa kama sintaksia ya URL badala ya data halisi, kuvunja URL au kusababisha tabia isiyotarajiwa.

Kuna usimbaji mbili unaohusiana lakini tofauti. Usimbaji wa sehemu ya kawaida ya URL hutumia %-escapes kwa kila kitu nje ya seti ya herufi ambazo hazijahifadhiwa: A-Z, a-z, 0-9, hyphen, underscore, period, tilde. Lahaja iliyosimbwa kwa fomu (application/x-www-form-urlencoded) pia hushughulikia nafasi kama ishara za pamoja na hutumia sheria tofauti kwa herufi zingine. Kipengele cha usimbaji cha JavaScript cha URIComponent hutumia usimbaji wa kijenzi madhubuti; encodeURI hutumia fomu inayoruhusu zaidi ambayo huhifadhi herufi za muundo wa URL.

Zana hii inatoa wote encoding na decoding. Hali ya kusimba hufunika kila herufi inayohitaji kutoroka katika umbizo la %HH; hali ya kusimbua inageuza mabadiliko. Zote mbili huendeshwa kabisa katika kivinjari chako kwa kutumia vitendaji vya JavaScript vilivyojengewa ndani, kwa hivyo hakuna data inayotumwa popote.

Kwa nini Usimbaji au Usimbue URLs

Wakati wowote data inajumuishwa katika URL - vigezo vya kamba za hoja, sehemu za njia zilizo na ingizo la mtumiaji, malengo ya kuelekeza upya - usimbaji ufaao unahitajika. Kushindwa kusimba hutoa URL ambazo huvunjika wakati herufi maalum zinaonekana, kuvuja mipaka ya vigezo ili kuuliza mifuatano (kugeuza &x=1 kuwa kigezo tofauti), au kuzuiwa na seva za wavuti kama maombi yenye hitilafu.

Kusimbua ni kinyume: kutoa data asili kutoka kwa URL iliyosimbwa. Pau za anwani za kivinjari mara nyingi huonyesha URL katika fomu iliyosimbwa; kusimbua kunaonyesha kile ambacho kilikusudiwa. Kuweka kumbukumbu, kurekebisha hitilafu na uchanganuzi wa usalama zote hunufaika kutokana na URL zilizosimbuliwa ambazo zinaonyesha vigezo na njia asili.

Jinsi ya kutumia

Bandika kamba, chagua mwelekeo.

  1. Chagua usimbaji au usimbue: Usimbaji hufunika herufi zisizo salama katika umbizo la %HH. Simbua geuza %HH inatoroka hadi kwa herufi halisi.
  2. Ongeza maandishi ya ingizo: Bandika mfuatano ili kusimba au kusimbua. Kwa usimbaji, hii kwa kawaida ni thamani halisi iliyo na nafasi, herufi maalum au maudhui yasiyo ya ASCII. Kwa kusimbua, hii ni URL au sehemu ya URL iliyo na %HH ya kutoroka.
  3. Geuza: Zana inatumika kusimba Sehemu yaURI au Kipengele cha kusimbuaURIComponent. Toleo lililosimbwa ni salama kupachikwa kwenye URL; pato lililosimbuliwa ni thamani halisi halisi.
  4. Nakili au pakua: Tumia matokeo popote unapohitaji. Thamani zilizosimbwa zinafaa katika URL; maadili yaliyosimbuliwa yanaonyesha data asili.

Kesi za Matumizi ya Kawaida

Maelezo ya Kiufundi

encodeURIComponent husimba kila herufi nje ya seti ambayo haijahifadhiwa [A-Za-z0-9-_.~]. Nafasi huwa %20, pamoja na ishara kuwa %2B, sawa na ishara kuwa %3D, na kadhalika. Herufi zilizo nje ya ASCII husimbwa kwanza katika UTF-8 na kisha kila baiti %-escaped.

encodeURI inaruhusiwa zaidi na inakusudiwa kwa URL kamili badala ya vijenzi. Haiepuki /, ?, &, =, #, na zingine chache kwa sababu herufi hizo zina maana ya kisintaksia ya URL. Kwa kupachika data ya mtumiaji katika URL, encodeURIComponent karibu kila wakati ni chaguo sahihi.

decodeURIComponent hugeuza %-escapes, kuthibitisha kwamba kila njia ya kutoroka imeundwa vizuri na kwamba baiti zinazotokana zinaunda UTF-8 halali. Ingizo mbovu hutupa hitilafu badala ya kuzalisha takataka.

Mazoea Bora

Maswali yanayoulizwa mara kwa mara

Ni herufi gani zinahitaji usimbaji wa URL?
Herufi zilizohifadhiwa (&, =, ?, #, /, :, @) na herufi zisizo salama (nafasi, <, >, {, }, |, ^, ~, [, ], `) lazima zisimbwe. Herufi za alphanumeric na -_.~ ziko salama na hazihitaji usimbaji.
Kuna tofauti gani kati ya encodeURI na encodeURIComponent?
encodeURI husimba URL kamili lakini huhifadhi herufi zilizohifadhiwa (://?#). encodeURIComponent husimba kila kitu isipokuwa -_.!~*'() - itumie kwa maadili ya vigezo vya hoja. Chombo hiki hutoa njia zote mbili.
Je, nafasi zimesimbwa vipi katika URL?
Nafasi zinaweza kusimba kama %20 (asilimia ya kawaida ya usimbaji) au + (usimbaji wa fomu). %20 ni sahihi kwa njia za URL, wakati + inatumika katika mifuatano ya hoja kutoka kwa fomu za HTML. Zana hii hutumia %20 kwa chaguo-msingi.
Je! ninaweza kusimba herufi za Unicode?
Ndiyo. Herufi za Unicode kwanza husimbwa kwa baiti za UTF-8, kisha kila baiti imesimbwa kwa asilimia. Kwa mfano, '日' inakuwa %E6%97%A5 (baiti tatu za UTF-8, kila asilimia imesimbwa).
Je, nitumie encodeURI au encodeURIComponent?
Karibu kila mara simba Sehemu yaURI. Tumia encodeURI ikiwa tu una URL kamili na unataka kuhifadhi muundo wake - kwa kawaida ni nadra kwani unaunda URL kutoka kwa vijenzi hata hivyo.
Je, data yangu imepakiwa kwenye seva?
Hapana. Usimbaji na usimbaji wa URL hutokea kabisa kwenye kivinjari chako.
Je, inashughulikia emoji ya Unicode?
Ndiyo. Emoji ni mlolongo wa UTF-8 wa baiti nyingi; programu ya kusimba hutoa msururu wa baiti %-zilizotoroka ambazo visimbuaji hujikusanya upya kwa emoji asili.
Je, ikiwa ingizo langu lina mifuatano %HH ambayo kwa hakika haijasimbwa?
Usimbaji hubadilisha kila % kuwa %25, kisha hutumika tena kutoroka kwa zilizosalia. Kusimbua ingizo kali hutupa makosa kwenye uepukaji wenye hitilafu; mifuatano isiyoeleweka inaweza kusimbua vibaya.