Kódování znaků v HTML

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á.

Určení kódování pomocí HTTP

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-r

Informace 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.

Nastavení hlaviček odesílaných serverem

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')?>

Definování kódování pomocí XML

V XHTML můžete také zadat kódování v preambuli XML , například:

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

HTML mnemotechnické pomůcky a kódy Unicode

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.