UTF-8 je symbol pre používanie znakovej sady. Aby ste tomu porozumeli ešte lepšie, použijem na výklad príklady. Aby ste výkladu porozumeli, beriem si vzory z bežného používania webov. Často sa stretávam, že tvorcovia webov napíšu utf-8 malými znakmi. Dokonca aj niektoré autority ako Google, Bing, Yahoo, Microsoft, Apple atď. napíšu utf-8 malými znakmi. Roboty prečítajú znakovú sadu aj s malými znakmi no má to však svoje ale. V princípe ide o spojenie k jazykovej deklarácii, kedy je zapísaný povel lang=‘en‘.
Anglický jazyk 👈 totiž nepozná znaky ako vôkáň, mäkčeň, dĺžeň, dlhé ŕ a ĺ, či české ů a ř atď. Angličtina má len jeden špeciálny znak a to je apostrof. Preto je aj robotom jedno či je zápis utf malými písmenami ak sme zadali jazyk „en“. Ak však napíšeme do jazykovej sady jazyk html lang=‘sk-SK‘ je treba aj hlavičku pre jazykovú sadu zapísať veľkými písmenami. Čo je ISO, ASCII, Unicode alebo ROT13 vás zaťažovať nebudem, iba by vás to v tejto chvíli zmiatlo.
Charset nie len pre stredoeurópske jazyky
Každý jazyk kultúrneho sveta má svoje špeciálne jazykové znaky, ktoré sa nedajú bežne zobraziť na weboch. Latinka je totiž základom písania textov a tá má len 26 základných znakov anglickej abecedy. Apostrof ale do Latinky nepatrí. Preto je Charset UTF-8 univerzálnou definíciou len v spojení s jazykovou sadou. Teda ak napíšeme charset malými písmenami, niektoré prehliadače môžu zobrazovať nepochopiteľný text či znaky, ktorým nerozumieme. Napríklad takéto zobrazenie „»“ a myslím, že nik z nás by sa nechcel učiť prekladať význam. Internetové nástroje ako prekladače a indexovacie roboty sme naučili, že vedia prečítať aj takéto zápisy a vedia ich spracovať do bežného textu. Teda aby ste tomu úplne porozumeli, sú dve definície pre charset. Jedna pre základnú Latinku a jedna pre ostatné jazyky.
Použitie veľkých znakov pre charset nedovolí prehliadačom zobraziť písaný text bez diakritiky zadanej jazykovej sady. Ako sú nastavené roboty prehliadačov, roboty prehľadávačov nie je v tejto chvíli dôležité vysvetľovať. Dôležitejšia informácia je, že ich výkon je závislý od vašej prvotnej definície v head sektore. Pretože príkaz html lang je prvý a druhý je charset a po nich si môžete zapisovať meta v akomkoľvek poradí a význame.
Dajte si ☕, lebo už viete že utf-8 nie je UTF-8.
Doplnené 04.09.2023 o 23:20
Aby ste si urobili obraz, tak práve som dokončil audit analýzu, kde som našiel takéto chybové hlásenie v súbore css. „@CHARSET ‚utf-8‘; a aj @charset ‚utf-8‘;“ a obidva tieto zápisy mi môj tester vyhodil ako nie valídny zápis v css. Správne je „@charset ‚UTF-8‘;“. Proti takémuto zápisu testery neprotestujú.
Pavol Knut Navrátil