Hypertextový značkovací jazyk HTML se používá od roku 1991, ale verze 4.0 (1997) byla první, kde je reprezentace znaků mimo ASCII (tj. angličtiny) poměrně standardizovaná.
Při zobrazení stránky HTML prohlížečem je třeba jim sdělit, v jakém kódování je stránka uložena. Chcete-li to provést, můžete použít dvě metody:
Při přenosu dokumentu HTML přes HTTP (řekněme na WWW ) je znaková sada dokumentu specifikována v hlavičce HTTP , například pro text v ruské verzi kódování KOI-8 :
Content-Typ: text/html; znaková sada=koi8-rInformace o kódování lze vložit do samotného dokumentu HTML pomocí značky metav části <head>dokumentu HTML. Například v případě kódování UTF-8 metaby značka vypadala takto:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />Ve standardu pro jazyk HTML 5 je meta tag informující prohlížeč o kódování stránky zapsán odlišně od pravidel přijatých v dřívějších HTML standardech. Takže příklad výše v HTML 5 by vypadal takto:
<meta charset="utf-8" />Tato metoda funguje dobře pro . Podle HTTP/1.1 je neuvedení znakové sady v záhlaví ekvivalentní použití znakové sady ISO 8859-1 .
To znamená, že prioritním faktorem pro prohlížeč na otázku „v jakém kódování se má dokument zobrazit“ může být hlavička přenášená serverem. V tomto případě musí prohlížeč ignorovat odpovídající direktivy v META tagu.
1. Při použití serveru Apache můžete použít soubor .htaccess . V něm musíte zadat direktivy serveru týkající se výchozího kódování: AddDefaultCharset UTF-8 Ve výše uvedeném příkladu bude UTF-8 přiřazeno jako výchozí kódování v hlavičkách serveru.
V případě kódování windows-1251 : AddDefaultCharset windows-1251
Tyto direktivy souboru .htaccess jsou nejčastěji používané. Ale v každém jednotlivém případě nemusí fungovat. Vše záleží na nastavení serveru.
Existují méně oblíbené direktivy, které jsou určeny k deaktivaci hlaviček serveru. Když jsou zakázány, prohlížeč vybere kódování v závislosti na indikacích v META tagu.
charsetdisable on
AddDefaultCharset Off
Problémy se zobrazením kódování jsou často způsobeny skutečností, že starší webový software (například web , CMS atd.) používá národní kódování, zatímco je server nakonfigurován pro práci s UTF-8. V tomto případě vynutí jazyk, kódování vyžadované softwarem (například cp1251) pro webový server a (obvykle) interpret PHP.
DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset "cp1251"
2. Direktiva PHP-code: Na začátku php-souboru můžete zadat php-kód, který odešle do prohlížeče instrukce pro výběr kódování: <?php header('Content-type: text/html; charset=utf-8')?>
V XHTML můžete také zadat kódování v preambuli XML , například:
<?xml version="1.0" encoding="utf-8"?>Znaky, které mají speciální jména (viz mnemotechnická pomůcka HTML ), mohou být kódovány jako &entity;, například:
Všechny znaky lze zároveň zakódovat do číselného zápisu pomocí desítkových (&#DD;) nebo hexadecimálních (&#xHHHH;) kódů Unicode .
Správný prohlížeč zobrazí výše uvedené znaky bez ohledu na aktuální kódování dokumentu a zejména i v případě, kdy takové znaky nelze pokrýt. Japonský text je tedy možný v dokumentu HTML napsaném v systému Windows-1251 atd.
Kódování znaků | |
---|---|
Historická kódování | doplňková komp. semafor (Makarov) morse Bodo MTK-2 komp. 6bitový SCP RADIX-50 EBCDIC KOI-7 ISO 646 |
moderní 8bitová reprezentace | symboly ASCII non-ASCII 8bitové kódové stránky cyrilice KOI-8 Základní kódování MacCyrillic ISO 8859 1 (lat.) 2 3 čtyři 5 (kir.) 6 7 osm 9 deset jedenáct 12 13 čtrnáct 15 (€) 16 Okna 1250 1251 (Kir.) 1252 1253 1254 1255 1256 1257 1258 WGL4 IBM a DOS 437 850 852 855 866 "alternativní" MIC |
Vícebajtové | tradiční DBCS GB2312 HTML unicode UTF-32 UTF-16 UTF-8 seznam postav cyrilice |
uživatelské rozhraní rozložení klávesnice národní prostředí překlad řádků písmo přepis vlastní písma utility iconv záznam |