het gebruik van `%3F` in URL

Tijdens het verplaatsen van een website – die ik niet heb gebouwd – ben ik het gebruik van %3Ftegengekomen.

%3Fis de percent-encodedversie van ?.

Het lijkt zo vaak gebruikt te worden:

<ahref="example%3Flang=1.html">Example</a>

bij het linken naar een bestand met de naam example_lang=1.html.

Dus ik heb %3Fvervangen door _en alles werkt weer.

Ik mis hier iets. De oude website werkte. Na verhuizing werkte het niet meer. Na de vervanging van %3Fnaar _werkten de links weer. Waarom?


Antwoord 1, autoriteit 100%

Eerst moet je je vraag verder uitwerken om hem beter te begrijpen. Als ik het goed heb begrepen, is dit misschien het antwoord.

“_” is geen gereserveerd URI-teken.

Zoals je zei dat %3F is gereserveerd voor “?” dan heb je helemaal gelijk, maar als je de documentatie leest die op wiki is geschreven, staat dat “_” (underscore) geen gereserveerd URI-teken is.

Zodat als de URL voor een webpagina bijvoorbeeld “example_test.html” is, de gecodeerde URL “example_test.html” moet zijn als er geen mechanisme toegepast op die URL. Nu zal ik een ander voorbeeld nemen van een op PHP gebaseerde webpagina die uw vraag kan beantwoorden.

In PHP is er een functie “str_replace” die wordt gebruikt om de tekenreeks te vervangen door door de programmeur gedefinieerde tekens of tekenreeks.

Laten we aannemen dat ik een pagina heb met de naam “example_test.html” en om een ​​aantal xyz-redenen wil ik deze wijzigen in “example%3Ftest.html” en dan ga ik kan gebruiken

str_replace("%3F","_","<a href='example%3Ftest.html'>Example Test</a>");

Deze functie zoekt naar alle exemplaren van “%3F” en vervangt deze door “_” in de opgegeven tekenreeks (hier “href=example%3Ftest .html“) en wordt uitgevoerd als “href=’example_test.html“, de daadwerkelijke link voor mijn bestand.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes