Simba na Simbua URL
Fanya maandishi yawe salama kuwekwa kwenye URL, au rudisha mfuatano kama %20 kuwa herufi zinazosomeka. Zana hii hutumia encodeURIComponent, encodeURI na decodeURIComponent za kivinjari chako, huorodhesha vigezo vya hoja katika jedwali, na haitumi chochote kwa seva.
Herufi 0 · maneno 0 · mistari 0
Herufi 0 · maneno 0 · mistari 0
Inafanya kazi kabisa ndani ya kichupo hiki cha kivinjari. Maandishi yako hayapakiwi wala kuhifadhiwa.
Kila kitendakazi hutoroshea nini
Imekokotolewa kwa vitendakazi vya kivinjari vyenyewe. encodeURIComponent huacha herufi, tarakimu na alama hizi bila kubadilisha: ! ' ( ) * - . _ ~
| Herufi | encodeURIComponent | encodeURI |
|---|---|---|
(nafasi) | %20 | %20 |
! | ! | ! |
" | %22 | %22 |
# | %23 | # |
$ | %24 | $ |
% | %25 | %25 |
& | %26 | & |
' | ' | ' |
( | ( | ( |
) | ) | ) |
* | * | * |
+ | %2B | + |
, | %2C | , |
/ | %2F | / |
: | %3A | : |
; | %3B | ; |
= | %3D | = |
? | %3F | ? |
@ | %40 | @ |
[ | %5B | %5B |
] | %5D | %5D |
{ | %7B | %7B |
} | %7D | %7D |
| | %7C | %7C |
\ | %5C | %5C |
^ | %5E | %5E |
` | %60 | %60 |
< | %3C | %3C |
> | %3E | %3E |
~ | ~ | ~ |
- | - | - |
_ | _ | _ |
. | . | . |
é | %C3%A9 | %C3%A9 |
€ | %E2%82%AC | %E2%82%AC |
😀 | %F0%9F%98%80 | %F0%9F%98%80 |
Percent-encoding na herufi zilizohifadhiwa za RFC 3986
URL inaweza kuwa na seti ndogo tu ya herufi za ASCII. RFC 3986, kanuni ya mwaka 2005 kuhusu sintaksia ya URI, inazigawa katika makundi mawili. Herufi zisizotengwa (unreserved), yaani A–Z, a–z, 0–9 na alama nne - . _ ~, hazihitaji kusimbwa kamwe. Herufi zilizotengwa (reserved) zina kazi maalum: vitenganishi vikuu : / ? # [ ] @ hutenganisha skimu, mwenyeji, njia, hoji na kipande, na vitenganishi vidogo ! $ & ' ( ) * + , ; = hutenganisha vipengee ndani yake, kama & na = zinavyofanya kwenye mfuatano wa hoji. Kila herufi nyingine, na herufi yoyote iliyotengwa inayotumika kama data ya kawaida, lazima isimbwe kwa asilimia.
Usimbaji wa asilimia huandika baiti kama % ikifuatiwa na tarakimu mbili za heksadesimali. Maandishi hubadilishwa kwanza kuwa UTF-8, hivyo nafasi huwa %20, é (baiti mbili) huwa %C3%A9 na emoji huwa vikundi vinne vya %XX. Ndiyo maana utafutaji wa "café & bar" huonekana kwenye kiungo kama caf%C3%A9%20%26%20bar: & husimbwa ili seva isiisome kama mwanzo wa kigezo kipya.
encodeURIComponent, encodeURI na usimbuaji
encodeURIComponent ndiyo chaguo sahihi kwa kipande kimoja, kama thamani ya hoji, sehemu ya njia au URL ya kuelekeza inayopitishwa kama kigezo. Husimba kila kitu isipokuwa herufi zisizotengwa na ! ' ( ) *, ambazo JavaScript huziacha kwa sababu za kihistoria. encodeURI (URL nzima) hudhani ingizo lake tayari ni anwani kamili na huacha herufi zilizotengwa kama zilivyo, kwa hiyo https://example.com/a b?q=1 husimba nafasi tu. Kutumia encodeURI kwenye thamani ya kigezo ni hitilafu ya kawaida: & au # ndani ya thamani itabaki na kuvunja URL.
Simbua hutendua kazi ya mojawapo ya kazi hizo mbili. Fomu za HTML zinazotumwa kwa GET hutumia muundo wa zamani wa application/x-www-form-urlencoded, ambapo nafasi huandikwa + badala ya %20; acha Treat + as a space ikiwa imetiwa alama kwa hizo, na iondoe alama pale alama halisi ya kujumlisha inapohitajika, kama kwenye namba ya simu. Ingizo likiwa na % isiyofuatiwa na tarakimu mbili za heksadesimali, au baiti ambazo si UTF-8 halali, usimbuaji hushindwa na ujumbe wazi badala ya kubashiri. Maandishi yakiwa na mfuatano wa hoji, vigezo vyake huonekana vimesimbuliwa kwenye jedwali chini ya zana. Kwa data ya binary kwenye URL, Base64url ndiyo mbadala wa kawaida.
Maswali yanayoulizwa mara kwa mara
- Nafasi katika URL iwe %20 au alama ya kujumlisha?
- Kwenye njia na kwa mujibu wa RFC 3986, nafasi ni %20. Umbo la + humaanisha nafasi tu ndani ya mfuatano wa hoji uliosimbwa kama fomu za HTML zinavyosimba, kwa hiyo %20 ndiyo chaguo salama kila mahali.
- Kwa nini URL yangu iliishia kuwa na %2520?
- Ilisimbwa mara mbili. Mara ya kwanza nafasi ikawa %20, na mara ya pili % yenyewe ikasimbwa kuwa %25. Simbua mara moja kuondoa tabaka la ziada, na simba thamani katika sehemu moja tu ya msimbo wako.
- Ni herufi zipi ambazo hazihitaji percent-encoding kamwe?
- Seti isiyotengwa ya RFC 3986: herufi A hadi Z kwa herufi kubwa na ndogo, tarakimu 0 hadi 9, na kistari, nukta, mstari wa chini na tilde.
- Je, URL inaweza kuwa na herufi zisizo za Kiingereza bila kusimbwa?
- Vivinjari huzionyesha, lakini kwenye mtandao kila herufi isiyo ya ASCII katika njia au hoji hutumwa kama UTF-8 iliyosimbwa kwa asilimia. Majina ya vikoa hutumia mfumo tofauti, Punycode, unaoyabadilisha kuwa lebo za xn--.
- Kwa nini usimbuaji unaripoti mfuatano ulioharibika?
- Maandishi yana % isiyofuatiwa na tarakimu mbili za heksadesimali, kama "100%" halisi, au baiti husimbuliwa kuwa UTF-8 batili. Simba alama za % zilizopotea kuwa %25 kabla ya kusimbua.