Sådan virker URL-kodning
I webadresser må der kun stå få tegn: bogstaver uden accent, tal og nogle få skilletegn. Alt andet bliver kodet. I UTF-8 består ø af bytene C3 og B8 og bliver derfor til %C3%B8. Et mellemrum bliver til %20, eller + i formularer.
Kodet
%C3%86bleskiver i %C3%85rhus
Afkodet
Æbleskiver i Århus
De mest almindelige URL-koder
%C3%A6= æ,%C3%B8= ø,%C3%A5= å,%C3%A9= é%C3%86= Æ,%C3%98= Ø,%C3%85= Å%E2%82%AC= €,%E2%80%99= ’,%E2%80%93= –%20= mellemrum,%2F= /,%3F= ?,%26= &,%25= %
Ældre systemer koder hvert bogstav med en enkelt byte fra Windows-1252: K%F8benhavn i stedet for K%C3%B8benhavn. Mojibuster genkender også det og laver det om til København.
Hvor URL-kodet tekst kommer fra
- Kopierede links: browseren viser
wikipedia.org/wiki/Københavnlæsbart, men ved kopiering havner der ofteK%C3%B8benhavni udklipsholderen. - Formularer og tracking: søgeord og UTM-parametre gemmes kodet i serverlogs og analyse-eksporter, for eksempel
?q=r%C3%B8dgr%C3%B8d. - Eksporter og API’er: nogle nyhedsbrevsværktøjer, webhooks og API’er gemmer værdier kodet; i CSV-filen står der så koder i stedet for navne.
- Filnavne: en download hedder
Faktura%20S%C3%B8ren.pdf, når serveren ikke afkoder navnet.
Koder og forkerte tegn på én gang
Nogle gange er teksten ødelagt to gange: %C3%83%C2%B8 er et URL-kodet ø, altså et ø, der først blev læst forkert og derefter kodet. Mojibuster afkoder først koderne og retter derefter à med tilde. Til sidst står der ø igen.
Indstillingen Konvertér også koder er allerede slået til på denne side. Den laver også HTML-koder (ø), e-mailkoder (=C3=B8) og escape-sekvenser fra programkode (\u00f8) om. Andre tegnfejl: ret UTF-8-tegn.
Afkod selv i Excel, JavaScript, Python og PHP
- Excel: har kun en funktion til at kode (
ENCODEURLi den engelske version), ingen til at afkode. Nemmest: kopiér kolonnen, indsæt den her, og kopiér resultatet tilbage. Se også mærkelige tegn i Excel. - JavaScript:
decodeURIComponent("K%C3%B8benhavn")giverKøbenhavn. - Python:
urllib.parse.unquote("K%C3%B8benhavn"), ellerunquote_plustil formulardata med+som mellemrum. - PHP:
rawurldecode(), ellerurldecode()til formulardata.
Ofte stillede spørgsmål
Hvad betyder %C3%B8?
Det er ø i URL-kodning: de to UTF-8-byte C3 og B8, hver med et % foran. På samme måde er %C3%A6 et æ og %C3%A5 et å.
Hvad betyder %20?
Et mellemrum. I formulardata bruges ofte + i stedet. Mojibuster lader + stå, fordi det i almindelig tekst kan være et rigtigt plustegn.
Bliver mine links uploadet?
Nej. Omdannelsen sker helt i din browser. Links med tokens, e-mailadresser eller andre personoplysninger forlader aldrig din enhed.
Hvorfor ændres 100% ikke?
Mojibuster laver kun sekvenser om, der giver et rigtigt specialtegn. 100%, 50 % eller et enligt %20 i almindelig tekst bliver stående.