Egy weboldalon a „3 < 5” kifejezést szövegként szeretnéd megjeleníteni. A HTML-ben egyes karaktereknek szerkezeti szerepük is van, ezért a szöveges tartalom megfelelő kódolása szükséges. A karakterhivatkozás segít elkülöníteni a megjelenítendő jelet a dokumentum jelöléseitől.
A leggyakoribb karakterhivatkozások
A kisebbjel HTML-forrásban <, az ampersand & alakban is megadható. A böngésző a hivatkozást megjelenítéskor a megfelelő karakterré alakítja. A „3 < 5 & 8 > 6” szöveg kódolt változata például „3 < 5 & 8 > 6”.
A forráskód hossza ettől nő, a látható szöveg karakterei viszont ugyanazok maradnak. Ezért az entitásokkal teli forrás karakterszáma eltérhet attól, amit az olvasó a képernyőn lát.
A kétszeri kódolás tünete
Ha a már kódolt < szöveget ismét kódolod, &lt; lesz belőle. A böngésző ezt látható „<” szövegként jelenítheti meg a kívánt „<” helyett. Ez gyakori jel arra, hogy a feldolgozási láncban ugyanazt a lépést kétszer végezték el.
Az ellenkező irányban az ismételt dekódolás is megváltoztathatja a jelentést. Általános „dekódolj mindent addig, amíg változik” szabály helyett ismerd a bemenet és a kimenet formátumát. A tárolt nyers szöveg és a HTML-be illesztett megjelenítés külön réteg legyen.
A beillesztési hely számít
A HTML-szövegbe, attribútumba, URL-be vagy JavaScript-kódba illesztés eltérő kezelést igényelhet. Egy HTML-entitás-átváltó önmagában nem általános biztonsági szűrő minden környezetre. Szöveges DOM-tartalomnál a textContent használata megfelelő út lehet, mert a bevitt karaktereket szövegként kezeli.
A kalkulátorral a kódolási és dekódolási lépést ellenőrizd, majd nézd meg a tényleges megjelenítést is. Próbálj kisebbjelet, ampersandot, idézőjelet és ékezetes szöveget; így a dupla kódolás hamar felismerhető.
Kapcsolódó DG Kalkulátor megnyitása
Forrás és módszertani háttér
A számpéldák saját szemléltető számítások.
Saját, végigvezetett számítási példa; a képlet és a modell feltételei a szövegben szerepelnek.
Háromkérdéses tudáspróba
Minden kérdésnél egy választ jelölj meg. A kiértékelés a cikk megértését ellenőrzi.
1. Melyik karakterhivatkozás jelöli az ampersandot?
- A) <
- B) &
- C) >
2. Mire utalhat a látható „<” a várt kisebbjel helyén?
- A) Biztosan rossz betűtípusra
- B) Nulla karakterre
- C) Kétszeri kódolásra
3. Minden beillesztési környezethez elég ugyanaz a HTML-kódolás?
- A) Nem, a kimeneti környezet számít
- B) Igen
- C) Csak ékezetes szövegnél
Megoldások és önálló pontozás
Minden helyes válasz 1 pont. 3 pont: a három összefüggést helyesen alkalmaztad; 2 pont: nézd át a téves válaszhoz tartozó részt; 0–1 pont: számold végig újra a példát. A rövid próba kizárólag e cikk tanulságaira vonatkozik.
1. Melyik karakterhivatkozás jelöli az ampersandot?
B) & – Az & a & jelet jeleníti meg HTML-ben.
2. Mire utalhat a látható „<” a várt kisebbjel helyén?
C) Kétszeri kódolásra – A már kódolt ampersand újbóli kódolása ezt eredményezheti.
3. Minden beillesztési környezethez elég ugyanaz a HTML-kódolás?
A) Nem, a kimeneti környezet számít – HTML, attribútum, URL és JavaScript külön szabályokat igényelhet.