UltKit

URL kodetu eta deskodetu

Prestatu testua URL batean seguru sartzeko, edo bihurtu %20 gisako sekuentziak berriro karaktere irakurgarri. Tresnak zure nabigatzailearen beraren encodeURIComponent, encodeURI eta decodeURIComponent funtzioak erabiltzen ditu, kontsulta-parametroak taula batean zerrendatzen ditu eta ez du ezer zerbitzari batera bidaltzen.

Modua

0 karaktere · 0 hitz · 0 lerro

0 karaktere · 0 hitz · 0 lerro

Nabigatzaile-fitxa honetan bertan exekutatzen da. Zure testua ez da inoiz igotzen edo gordetzen.

Funtzio bakoitzak zer ihes egiten duen

Nabigatzaileko funtzioekin berekin kalkulatua. encodeURIComponent-ek letrak, digituak eta marka hauek ukitu gabe uzten ditu: ! ' ( ) * - . _ ~

KaraktereaencodeURIComponentencodeURI
(zuriunea)%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

Ehuneko-kodeketa eta RFC 3986 arauaren karaktere erreserbatuak

URL batek ASCII karaktere multzo mugatu bat bakarrik izan dezake. RFC 3986k, URI sintaxiaren 2005eko espezifikazioak, bi taldetan banatzen ditu. Erreserbatu gabeko karaktereak, A–Z, a–z, 0–9 eta lau marka hauek - . _ ~, ez dute inoiz kodetu beharrik. Erreserbatuek badute zeregina: : / ? # [ ] @ muga orokorrek eskema, ostalaria, bidea, kontsulta eta zatia bereizten dituzte, eta ! $ & ' ( ) * + , ; = azpimugatzaileek haien barruko elementuak bereizten dituzte, & eta = kontsulta-kate batean egiten duten bezala. Gainerako guztia, eta datu huts gisa erabilitako edozein karaktere erreserbatu, ehuneko bidez kodetu behar da.

Ehuneko-kodetzeak byte bat % batekin idazten du, eta ondoren bi digitu hamaseitarrekin. Testua lehenik UTF-8 formatura bihurtzen da; beraz, zuriune bat %20 bihurtzen da, é bat (bi byte) %C3%A9 eta emoji bat lau %XX talde. Horregatik, "café & bar" bilaketa esteka batean caf%C3%A9%20%26%20bar gisa agertzen da: & kodetzen da, zerbitzariak parametro berri baten hasiera gisa irakur ez dezan.

encodeURIComponent, encodeURI eta deskodeketa

encodeURIComponent da aukera egokia pieza bakar baterako, hala nola kontsulta-balio, bide-segmentu edo parametro gisa pasatzen den birbideratze-URL baterako. Erreserbatu gabeko karaktereak eta ! ' ( ) * izan ezik dena ihes-kodetzen du; azken horiek JavaScriptek bere horretan uzten ditu arrazoi historikoengatik. encodeURI (URL osoa) sarrera helbide oso bat dela suposatzen du eta karaktere erreserbatuak ukitu gabe uzten ditu; beraz, https://example.com/a b?q=1 helbidean zuriunea bakarrik kodetzen da. encodeURI parametro-balio batean erabiltzea akats klasikoa da: balioaren barruko & edo # bizirik geratuko lirateke eta URLa hautsiko lukete.

Deskodetu aukerak bi funtzioetako edozein desegiten du. GET bidez bidalitako HTML inprimakiek application/x-www-form-urlencoded formatu zaharragoa erabiltzen dute, non zuriunea %20 ordez + gisa idazten den; horietarako utzi markatuta Tratatu + zuriune gisa, eta kendu markatzea plus ikur literala axola denean, telefono-zenbaki batean adibidez. Sarreran bi digitu hamaseitarrek jarraitzen ez duten % bat badago, edo UTF-8 baliozkoak ez diren byteak, deskodetzeak mezu argi batekin huts egiten du asmatu gabe. Testuak kontsulta-kate bat badu, bere parametroak deskodetuta agertzen dira tresnaren azpiko taula batean. URLetako datu bitarretarako, Base64url da ohiko alternatiba.

Maiz egiten diren galderak

URL bateko zuriunea %20 ala plus ikurra izan behar da?
Bideetan eta RFC 3986ren arabera, zuriunea %20 da. + formak zuriunea esan nahi du HTML inprimakiek kodetzen duten moduan kodetutako kontsulta-kateetan bakarrik; beraz, %20 da aukera segurua toki guztietan.
Zergatik agertu da %2520 nire URLan?
Bi aldiz kodetu da. Lehen pasaldiak zuriunea %20 bihurtu zuen, eta bigarrenak % bera kodetu zuen %25 gisa. Deskodetu behin soberako geruza desegiteko, eta kodetu balioak zure kodearen puntu bakar batean.
Zein karakterek ez dute inoiz ehuneko-kodeketarik behar?
RFC 3986ren erreserbatu gabeko multzoa: A-tik Z-ra letrak bi kasuetan, 0tik 9ra digituak, eta marratxoa, puntua, azpimarra eta tildea.
Eduki ditzake URL batek ingelesez kanpoko letrak kodetu gabe?
Nabigatzaileek erakutsi egiten dituzte, baina sarean bide edo kontsulta bateko ASCII ez den karaktere guztiak ehuneko bidez kodetutako UTF-8 gisa bidaltzen dira. Domeinu-izenek sistema bereizi bat erabiltzen dute, Punycode, xn-- etiketa bihurtzen dituena.
Zergatik dio deskodeketak sekuentzia gaizki osatuta dagoela?
Testuak bi digitu hamaseitarrek jarraitzen ez duten % bat du, adibidez "100%" literala, edo byteak UTF-8 baliogabe gisa deskodetzen dira. Kodetu galdutako % ikurrak %25 gisa deskodetu aurretik.