Práve pred pár hodinami sa mi natiahol update na Firefox 4, aktualizoval sa z verzie RC na RC2, vraj kvôli nejakým štrbinám v oblasti bezpečnosti. No čo som si ja náhle všimol, možno to nemá nič spoločné s update-om na RC2, ale celkom určite sa to stalo pri prechode na verziu 4: na mojej stránke sa začali zjavovať čudesné znaky na miestach, kde mali byť dĺžne, mäkčene a podobne. Čosi sa stalo s tým, ako prehliadač interpretuje znakovú sadu mojich stránok. Keďže v IE8 to funguje, tak čosi skutočne čudné musí byť v ovzduší.
Po chvíľke hľadania som narazil na akúsi stránku, ktorá spomínala, že charset, ako sa kedysi špecifikoval podľa starého štandardu HTML v rámci atribúty content META tagu, ktorý nahradzuje HTTP response header Content-Type, teda tohoto a takto:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
že už je tento spôsob DEPRECATED - zanechaný, odvrhnutý - v štandarde HTML 5 a ja vyvodzujem, že FF4 sa odhodlal ísť s plnou podporou nového vzrušujúceho HTML 5 štandardu, tak teda ignoruje moju špecifikáciu znakovej sady.
Čo s tým?
Samozrejme, kde sa niečo staré končí, niečo nové sa začína. Teda, kde zavrhli starý spôsob definovania znakovej sady pre stránky, uviedli nový spôsob ako dosiahnuť to isté. A to už pomocou nového META tagu. Teda, META tag je náš starý známy, no pre uvedenie znakovej sady sa dnes používa tento fešák:
Samozrejme, UTF-8 je tu uvedené len ako príklad. Na mojich stránkach to je zasa ISO-8859-2, alebo aj sada zvaná Latin2.
Hurá na nový štandard! Ale pozóór...
Hoci pre prehliadač, ako napríklad už dlho-očakávaný Firefox 4, ktorý podporuje HTML 5 je práve tento nový spôsob udávania znakovej sady vyžadovaný, nezabúdajme (do oka sa mi tisne slza) na užívateľov napríklad Internet Explorer-u 6 a staršie (ježá sa mi chlupé na štici), je potrebné aby ste stlmili entuziazmus a ponechali aj starý meta tag a udali charset v rámci Htt-Eqiv META tagu.
Ešte jedna poznámka k používaniu starého tagu: keď môžete, nastavte si vašu servrovú časť, napríklad PHP skripty, aby produkovali HTTP response header Content-Type: text/html; charset=UTF-8 a vaša znaková sada bude popísaná už v samotnej hlavičke HTTP odozvy, čo vlastne sa starý META tag s atribútom http-eqiv snaží nahradiť.
Veselé prijatie nového štandardu a ZDOCHNI IE6, ZDOCHNI!
Die IE6, go to hell already!
|