Alle gidsen

Waarom een tekst "&" toont en hoe u dat herstelt

Gepubliceerd op · Bijgewerkt op 3 min leestijd

U hebt waarschijnlijk wel eens gezien dat een tekst op een site, in een e-mail of op een productpagina "Tom & Jerry" toont in plaats van "Tom & Jerry". Het is geen defect: een HTML-entiteit is één keer te veel gecodeerd. Deze gids legt uit waar het probleem vandaan komt en hoe u het herstelt.

Wat een HTML-entiteit is

In de code van een webpagina hebben sommige tekens een bijzondere rol: de "&" begint een entiteit, de tekens "<" en ">" omsluiten tags. Om deze tekens te tonen zoals ze zijn, worden ze vervangen door een reeks tekens die een entiteit heet. Vijf zijn gangbaar.

TekenEntiteit
&&amp;
<&lt;
>&gt;
"&quot;
' (recht apostrof)&#039;

Waar dubbele codering vandaan komt

Een tekst gaat soms door twee systemen die elk coderen: een editor en daarna een paginasjabloon. Elke doorgang verandert de "&" van de vorige entiteit. Met HTML-entiteiten coderen en decoderen geeft het coderen van "Tom & Jerry" "Tom &amp; Jerry", en het coderen van dat resultaat geeft "Tom &amp;amp; Jerry".

StapVerkregen tekst
Oorspronkelijke tekstTom & Jerry
Eén keer gecodeerdTom &amp; Jerry
Twee keer gecodeerdTom &amp;amp; Jerry

De browser decodeert bij het weergeven één niveau. Een tekst die twee keer is gecodeerd, verschijnt dus met "&amp;" in plaats van "&".

Eén niveau tegelijk decoderen

Het hulpmiddel verwijdert per doorgang één niveau entiteiten. Als het resultaat nog entiteiten bevat, meldt de modus "Beide" dat en voert u de decodering opnieuw uit op het resultaat.

TekstEerste decoderingTweede decodering
Tom &amp;amp; JerryTom &amp; JerryTom & Jerry
&amp;lt;b&amp;gt;gras&amp;lt;/b&amp;gt;&lt;b&gt;gras&lt;/b&gt;<b>gras</b>

Eén niveau tegelijk decoderen voorkomt dat u een bedoelde codering ongedaan maakt: een codevoorbeeld dat "&amp;" op het scherm moet tonen, wordt in de pagina als "&amp;amp;" geschreven.

Accenten en symbolen

De decodering begrijpt alle benoemde entiteiten die met een puntkomma eindigen, niet alleen de vijf gebruikelijke. "caf&eacute; &agrave; 5&nbsp;&euro; &copy; 2026" geeft "café à 5 € © 2026", waarbij de harde spatie een echte harde spatie wordt. Numerieke entiteiten worden ook gedecodeerd: "&#233;t&#xE9;" geeft "été", en "&#x1F600;" net als "&#128512;" geven dezelfde emoji.

Wat het hulpmiddel intact laat

  • Een onbekende entiteit zoals "&inconnue;" blijft zoals ze is.
  • Een entiteit zonder afsluitende puntkomma, zoals "&amp" of "&lt" in een zin, wordt niet aangeraakt.
  • Een adres met parameters, zoals "https://exemple.fr/?a=1&param=2&copy=4", blijft exact: "&param" en "&copy" worden daar niet voor entiteiten aangezien.

Code coderen om hem te tonen

Om een stuk code in een pagina te tonen, codeert u het één keer. De tekst "<a href="x">l’été & plus</a>" geeft "&lt;a href=&quot;x&quot;&gt;l&#039;été &amp; plus&lt;/a&gt;". Letters met accenten worden niet gecodeerd, alleen de vijf gereserveerde tekens.

Het probleem voorkomen

Codeer maar één keer, op het laatste moment, wanneer de tekst in de pagina wordt geschreven. Om de resten van een slechte codering in bulk te vervangen, past Zoeken en vervangen. Webadressen volgen een andere codering, uitgelegd in Base64, hash en gecodeerd adres, verwar ze niet.

Waar het probleem verschijnt

Op een productpagina, een paginatitel, een automatische e-mail of een veld dat van een andere site is geïmporteerd: een "&" wordt "&amp;" als de tekst twee keer wordt gecodeerd.

Het resultaat controleren

  1. Voer de decodering opnieuw uit zolang het hulpmiddel overgebleven entiteiten meldt.
  2. Vergelijk met de oorspronkelijke tekst op het scherm.
  3. Controleer de harde spaties en de emoji.

HTML-entiteiten

Veelgestelde vragen

Waarom toont mijn tekst "&amp;"?
Een HTML-entiteit is één keer te veel gecodeerd. De browser decodeert bij het weergeven één niveau, het tweede blijft zichtbaar.
Hoe herstelt u het?
Decodeer met het hulpmiddel één niveau tegelijk, totdat het geen entiteiten meer meldt.
Decodeert het hulpmiddel accenten?
Ja, alle benoemde entiteiten die met een puntkomma eindigen, en numerieke entiteiten.
Hoe voorkomt u het probleem?
Codeer maar één keer, op het laatste moment, wanneer de tekst in de pagina wordt geschreven.