Karakterkódolások HTML-ben

A HTML hiperszöveg jelölőnyelvet 1991 óta használják, de a 4.0 (1997) verzió volt az első, ahol a nem ASCII karakterek (vagyis az angol) megjelenítése meglehetősen szabványos.

A kódolás meghatározása HTTP használatával

A HTML oldal böngészők általi megjelenítésekor az utóbbiaknak meg kell adni, hogy az oldal milyen kódolásban van elmentve. Ehhez két módszert használhat:

HTML-dokumentum HTTP -n keresztüli továbbításakor (mondjuk a WWW -re ) a dokumentum karakterkészletét a HTTP-fejlécben kell megadni , például a KOI-8 kódolás orosz verziójában lévő szöveghez :

Tartalom típusa: szöveg/html; charset=koi8-r

A kódolási információk beilleszthetők magába a HTML-dokumentumba a HTML -dokumentum metaegy részében található címke használatával <head>. Például UTF-8 kódolás esetén a címke metaígy néz ki:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

A HTML 5 nyelv szabványában a böngészőt az oldal kódolásáról tájékoztató metacímke a korábbi HTML szabványokban alkalmazott szabályoktól eltérően íródik. Tehát a fenti példa a HTML 5-ben így nézne ki:

<meta charset="utf-8" />

Ez a módszer jól működik . A HTTP/1.1 szerint, ha nem adunk meg karakterkészletet a fejlécben, az megfelel az ISO 8859-1 karakterkészlet használatának .

Vagyis a böngésző számára a "milyen kódolásban jelenítse meg a dokumentumot" kérdésben a szerver által továbbított fejléc lehet az elsődleges tényező. Ebben az esetben a böngészőnek figyelmen kívül kell hagynia a META tag megfelelő utasításait.

A szerver által küldött fejlécek beállítása

1. Az Apache szerver használatakor használhatja a .htaccess fájlt . Ebben direktívákat kell megadnia a szervernek az alapértelmezett kódolásokkal kapcsolatban: AddDefaultCharset UTF-8 A fenti példában az UTF-8 lesz hozzárendelve alapértelmezett kódolásként a szerver fejléceiben.

Windows-1251 kódolás esetén : AddDefaultCharset windows-1251

Ezek a .htaccess fájl direktívák a leggyakrabban használtak. De minden egyes esetben előfordulhat, hogy nem működnek. Minden a szerver beállításaitól függ.

Vannak kevésbé népszerű direktívák, amelyek célja a kiszolgálófejlécek letiltása. Ha le vannak tiltva, a böngésző a META tag jelzései alapján választja ki a kódolást.

charsetdisable on

AddDefaultCharset Off

A kódolási megjelenítési problémák gyakran abból adódnak, hogy a régebbi webszoftverek (például egy webhely , CMS stb.) a nemzeti kódolást használják, miközben a szerver UTF-8-as működésre van beállítva. Ebben az esetben kikényszeríti a nyelvet, a szoftver által megkívánt kódolást (például cp1251) a webszerverhez, és (általában) a PHP értelmezőt.

DefaultLanguage ru

AddDefaultCharset windows-1251

php_value default_charset "cp1251"

2. PHP-kód direktíva: A php-fájl elején megadhat egy php-kódot, amely utasításokat küld a böngészőnek a kódolás kiválasztásához: <?php header('Content-type: text/html; charset=utf-8')?>

Kódolás meghatározása XML használatával

Az XHTML-ben a kódolást az XML preambulumában is megadhatja , például:

<?xml version="1.0" encoding="utf-8"?>

HTML mnemonika és Unicode kódok

A speciális nevekkel rendelkező karakterek (lásd: HTML-mnemonika ) kódolhatók &entity;például:

Ugyanakkor az összes karakter numerikus jelöléssel is kódolható Unicode decimális (&#DD;) vagy hexadecimális (&#xHHHH;) kódokkal .

A megfelelő böngésző a fenti módon megadott karaktereket jeleníti meg, függetlenül a dokumentum aktuális kódolásától, és különösen abban az esetben, ha az ilyen karaktereket nem fedheti le. Így a japán szöveg lehetséges a Windows-1251-ben írt HTML-dokumentumban stb.