Odkrijte skrivnost CSS @charset. Spoznajte njegovo ključno vlogo pri kodiranju znakov za slogovne predloge, ki zagotavlja globalni prikaz besedil in preprečuje 'mojibake' v različnih jezikih in pisavah. Nujno za vsakega spletnega razvijalca.
CSS @charset: Nevidni arhitekt globalnega prikaza besedil
V zapletenem svetu spletnega razvoja, kjer se mora vsak piksel in znak popolno prikazati na neštetih napravah in v različnih kulturah, obstajajo pogosto subtilne, a ključne podrobnosti, ki ostanejo neopažene, dokler se nekaj ne pokvari. Ena takšnih podrobnosti, temeljna za robustno mednarodno spletno prisotnost, je kodiranje znakov. Za CSS to posebej vključuje pravilo @charset. Čeprav se zdi nepomembno, je razumevanje in pravilna uporaba @charset ključnega pomena za zagotovitev, da vaše slogovne predloge govorijo isti jezik kot vaša vsebina in brezhibno prikazujejo besedilo globalnemu občinstvu.
Ta celovit vodnik se poglobi v pomen pravila @charset, raziskuje njegovo vlogo v širšem kontekstu kodiranja znakov na spletu. Odkrili bomo, zakaj je pomembno, kako deluje v interakciji z drugimi deklaracijami kodiranja, najboljše prakse za njegovo uporabo in pogoste pasti, ki se jim je treba izogniti – vse skozi prizmo ustvarjanja resnično globalne spletne izkušnje.
Razumevanje kodiranja znakov: Temelj
Preden lahko v celoti cenimo @charset, moramo najprej razumeti koncept kodiranja znakov. V svojem bistvu je kodiranje znakov sistem, ki dodeljuje edinstvene številske vrednosti znakom – črkam, številkam, simbolom in celo emodžijem – kar omogoča njihovo shranjevanje, prenos in digitalni prikaz. Brez doslednega kodiranja je zaporedje bajtov zgolj podatek; z njim pa se ti bajti spremenijo v smiselno besedilo.
Razvoj naborov znakov
- ASCII (Ameriški standardni kod za izmenjavo informacij): Najzgodnejši in najosnovnejši standard kodiranja. ASCII preslika 128 znakov (0-127), ki večinoma pokrivajo angleške abecedne črke, številke in osnovna ločila. Njegova preprostost je bila revolucionarna, vendar je njegov omejen obseg hitro postal ovira, ko se je računalništvo razširilo po svetu.
- ISO-8859-1 (Latin-1): Razširitev ASCII, ki dodaja še 128 znakov (128-255) za podporo zahodnoevropskim jezikom, vključno z znaki z diakritičnimi znamkami (naglasnimi znamenji, preglasi), kot so é, ü, ç. Čeprav je bil to pomemben korak, še vedno ni zadostoval za jezike, ki uporabljajo popolnoma drugačne pisave, kot so cirilica, arabščina ali vzhodnoazijski znaki.
- Potreba po univerzalnem kodiranju: Ko je internet postal globalni fenomen, so omejitve enobajtnih kodiranj postale očitne. Spletna mesta, ki so ponujala vsebino v več jezikih ali ciljala na raznolike jezikovne skupnosti, so se soočala z nepremostljivimi izzivi. Potrebno je bilo univerzalno kodiranje, ki bi lahko predstavljalo vsak znak v vsakem človeškem jeziku in celo številne nečloveške simbole.
UTF-8: Globalni standard
Tu nastopi UTF-8 (Unicode Transformation Format - 8-bit), prevladujoče kodiranje znakov za splet danes, in to z dobrim razlogom. UTF-8 je kodiranje s spremenljivo širino, ki lahko predstavlja kateri koli znak v standardu Unicode. Unicode je ogromen nabor znakov, katerega cilj je zajeti vse znake iz vseh svetovnih pisav. Narava spremenljive širine UTF-8 pomeni:
- Običajni znaki ASCII so predstavljeni z enim samim bajtom, kar omogoča povratno združljivost in učinkovitost za angleško besedilo.
- Znaki iz drugih pisav (npr. grške, cirilične, arabske, kitajske, japonske, korejske, hindijske, tajske) so predstavljeni z dvema, tremi ali štirimi bajti.
- Je zelo učinkovit za vsebino z mešanimi pisavami, saj ne zapravlja prostora za enobajtne znake.
- Je odporen in široko podprt v brskalnikih, operacijskih sistemih in programskih jezikih.
Pretežno priporočilo za vso novo spletno vsebino je uporaba UTF-8. Poenostavlja razvoj, zagotavlja maksimalno združljivost in je ključnega pomena za globalni doseg.
Pravilo CSS @charset: Poglobljen pregled
Z razumevanjem kodiranja znakov se lahko sedaj osredotočimo na pravilo CSS @charset. To pravilo služi enemu samemu, ključnemu namenu: določanju kodiranja znakov same slogovne predloge.
Sintaksa in umestitev
Sintaksa za @charset je preprosta:
@charset "UTF-8";
Ali, za starejše, manj priporočljivo kodiranje:
@charset "ISO-8859-1";
Obstajajo ključna pravila glede njegove umestitve:
- MORA biti prvi element v slogovni predlogi. Pred njim ne sme biti nobenih komentarjev, nobenih presledkov (razen neobvezne oznake vrstnega reda bajtov) in nobenih drugih pravil CSS ali @-pravil.
- Če ni prvi element, ga bo razčlenjevalnik CSS preprosto prezrl, kar lahko privede do težav s kodiranjem.
- Velja samo za slogovno predlogo, v kateri je deklarirano. Če imate več datotek CSS, vsaka datoteka potrebuje svoje pravilo
@charset, če se njeno kodiranje lahko razlikuje od privzetega ali predvidenega kodiranja.
Zakaj je potrebno?
Predstavljajte si, da vaša datoteka CSS vsebuje pisave po meri z določenimi obsegi znakov, uporablja lastnosti 'content' s posebnimi simboli ali morda definira razrede z imeni, ki vsebujejo znake, ki niso ASCII (čeprav je to za imena razredov na splošno odsvetovano, je mogoče). Če brskalnik interpretira bajte vaše datoteke CSS z uporabo kodiranja, ki se razlikuje od tistega, v katerem je bila shranjena, se bodo ti znaki prikazali kot popačeno besedilo, znano kot "mojibake" (乱れ文字 - japonsko za "pomešani znaki").
Pravilo @charset brskalniku izrecno pove: "Hej, ta datoteka CSS je bila napisana z uporabo tega specifičnega kodiranja znakov. Prosim, interpretiraj njene bajte v skladu s tem." Ta eksplicitna deklaracija pomaga preprečiti napačne interpretacije, še posebej, ko pride do konfliktov ali dvoumnosti v drugih deklaracijah kodiranja.
Hierarhija deklaracij kodiranja
Pomembno je razumeti, da pravilo @charset ni edini način, na katerega brskalnik določi kodiranje datoteke CSS. Obstaja specifična hierarhija prednosti, ki jo brskalniki upoštevajo:
-
Glava HTTP
Content-Type: To je najavtoritativnejša in najprimernejša metoda. Ko spletni strežnik dostavi datoteko CSS, lahko vključi glavoHTTP Content-Types parametromcharset, na primer:Content-Type: text/css; charset=UTF-8. Če je ta glava prisotna, jo bo brskalnik upošteval pred vsem drugim.Ta metoda je močna, ker jo nastavi strežnik, kar zagotavlja doslednost, še preden brskalnik začne razčlenjevati vsebino datoteke. Pogosto se konfigurira na ravni strežnika (npr. Apache, Nginx) ali znotraj skriptiranja na strežniški strani (npr. PHP, Node.js).
-
Oznaka vrstnega reda bajtov (BOM): BOM je posebno zaporedje bajtov na začetku datoteke, ki označuje njeno kodiranje (specifično za kodiranja UTF, kot so UTF-8, UTF-16). Čeprav so BOM-i za UTF-8 tehnično neobvezni in lahko včasih povzročajo težave (npr. dodaten prazen prostor v starejših brskalnikih/strežnikih), njegova prisotnost brskalniku sporoča: "Ta datoteka je kodirana v UTF-8." Če je BOM prisoten, ima prednost pred pravilom
@charset.Za UTF-8 je zaporedje BOM
EF BB BF. Mnogi urejevalniki besedil samodejno dodajo BOM pri shranjevanju kot "UTF-8 z BOM". Na splošno je priporočljivo shranjevati datoteke UTF-8 brez BOM-a za spletno vsebino, da se izognete morebitnim napakam pri prikazu ali težavam z razčlenjevalnikom. -
Pravilo
@charset: Če ni prisotna niti glava HTTPContent-Typeniti BOM, bo brskalnik nato iskal pravilo@charsetkot prvi stavek v datoteki CSS. Če ga najde, bo uporabil to deklarirano kodiranje. -
Kodiranje nadrejenega dokumenta: Če nobena od zgornjih možnosti ni določena, bo brskalnik običajno uporabil kodiranje dokumenta HTML, ki se povezuje na datoteko CSS. Na primer, če ima vaš dokument HTML
<meta charset="UTF-8">in za CSS niso prisotni drugi namigi o kodiranju, bo brskalnik predpostavil, da je tudi CSS v UTF-8. - Privzeto kodiranje: Kot zadnjo možnost, če iz nobenega vira ni na voljo eksplicitnih informacij o kodiranju, bo brskalnik uporabil svoje privzeto kodiranje (ki se razlikuje, vendar je v sodobnih brskalnikih pogosto UTF-8, v starejših pa lokalno specifično kodiranje). To je najbolj tvegan scenarij in se mu je treba za vsako ceno izogniti, saj je najpogostejši vzrok za mojibake.
Ta hierarhija pojasnjuje, zakaj se včasih datoteka CSS pravilno prikaže tudi brez eksplicitnega pravila @charset, še posebej, če vaš strežnik dosledno pošilja glave UTF-8 ali če vaš dokument HTML deklarira UTF-8.
Kdaj in zakaj uporabiti @charset
Glede na hierarhijo se lahko vprašamo: Ali je @charset vedno potreben? Odgovor je niansiran, vendar je na splošno to dobra praksa, še posebej v določenih scenarijih:
-
Kot močna zasilna rešitev: Tudi če je vaš strežnik konfiguriran za pošiljanje glav
UTF-8, vključitev@charset "UTF-8";na vrh datoteke CSS deluje kot eksplicitna, interna deklaracija. To je še posebej uporabno v razvojnih okoljih, kjer so lahko konfiguracije strežnika nedosledne, ali ko se datoteke pregledujejo lokalno brez strežnika. - Za doslednost in jasnost: Kodiranje datoteke CSS naredi eksplicitno za vsakogar, ki odpre datoteko, pa naj bo to razvijalec, upravitelj vsebine ali strokovnjak za lokalizacijo. Ta jasnost zmanjšuje dvoumnost in potencialne napake med sodelovanjem, še posebej v mednarodnih ekipah.
-
Pri selitvi ali delu s starejšimi sistemi: Če delate s starejšimi datotekami CSS, ki so morda bile ustvarjene z različnimi kodiranji (npr. ISO-8859-1 ali Windows-1252), in morate ta kodiranja začasno ohraniti ali med fazo selitve, postane
@charsetključnega pomena za pravilno interpretacijo teh datotek. -
Pri uporabi znakov, ki niso ASCII, v CSS: Čeprav je na splošno odsvetovano zaradi berljivosti in vzdrževanja, CSS omogoča, da identifikatorji (kot so imena razredov ali pisav) vsebujejo znake, ki niso ASCII, če so ti ubežani ali če kodiranje datoteke pravilno ravna z njimi. Na primer, če definirate družino pisav kot
font-family: "Libre Baskerville Cyrillic";ali uporabljate specifične simbole znakov v lastnostihcontent(content: '€';za simbol evra ali neposrednocontent: '€';), potem postane zagotavljanje pravilne deklaracije kodiranja datoteke CSS ključnega pomena.@charset "UTF-8"; .currency-symbol::before { content: "€"; /* Simbol evra v UTF-8 */ } .multilingual-text::after { content: "안녕하세요"; /* Korejski znaki */ }Brez pravilnega
@charset(ali drugih močnih namigov o kodiranju) bi se ti znaki lahko prikazali kot vprašaji ali drugi napačni simboli. -
Zunanje slogovne predloge na različnih domenah: Čeprav je to manj pogosto za tipična sredstva, se lahko, če se povezujete na datoteke CSS, gostovane na popolnoma različnih domenah, njihove konfiguracije strežnikov bistveno razlikujejo. Ekspliciten
@charsetlahko zagotovi dodatno raven robustnosti pred nepredvidenimi neusklajenostmi kodiranja.
V bistvu, čeprav je UTF-8 univerzalno priporočeno kodiranje in so strežniške glave najrobustnejši mehanizem, @charset "UTF-8"; služi kot odlično varovalo in jasna deklaracija namena znotraj vaše slogovne predloge, kar izboljšuje prenosljivost in zmanjšuje verjetnost težav, povezanih s kodiranjem, za globalno občinstvo.
Najboljše prakse za globalno kodiranje znakov
Za zagotovitev brezhibne, globalno dostopne spletne izkušnje je ključnega pomena upoštevanje dosledne strategije kodiranja za vsa vaša spletna sredstva. Tukaj so najboljše prakse, pri čemer @charset igra svojo vlogo:
1. Standardizirajte na UTF-8 povsod
To je zlato pravilo. Naj bo UTF-8 vaše privzeto in univerzalno kodiranje za:
- Vse dokumente HTML: Eksplicitno deklarirajte
<meta charset="UTF-8">znotraj razdelka<head>vašega HTML-ja. To bi morala biti ena prvih meta oznak. - Vse slogovne predloge CSS: Vse vaše datoteke
.cssshranite kot UTF-8. Poleg tega vključite@charset "UTF-8";kot prvo vrstico vsake datoteke CSS. - Vse datoteke JavaScript: Shranite vaše datoteke
.jskot UTF-8. Čeprav JavaScript nima ekvivalenta za@charset, je doslednost ključna. - Konfiguracija strežnika: Konfigurirajte svoj spletni strežnik (Apache, Nginx, IIS itd.), da vso besedilno vsebino servira z glavo
Content-Type: text/html; charset=UTF-8aliContent-Type: text/css; charset=UTF-8. To je najrobustnejša in najprimernejša metoda. - Kodiranje baze podatkov: Zagotovite, da so vaše baze podatkov (npr. MySQL, PostgreSQL) konfigurirane za uporabo UTF-8 (posebej
utf8mb4za MySQL, da v celoti podpira vse znake Unicode, vključno z emodžiji). - Razvojno okolje: Konfigurirajte svoj urejevalnik besedil, IDE in sistem za nadzor različic, da privzeto uporabljajo UTF-8. To preprečuje nenamerno shranjevanje v drugačnem kodiranju.
Z dosledno uporabo UTF-8 v celotnem naboru tehnologij dramatično zmanjšate možnosti za težave, povezane s kodiranjem, in zagotovite, da se besedilo v katerem koli jeziku, iz katere koli pisave, prikazuje, kot je predvideno za uporabnike po vsem svetu.
2. Vedno shranjujte datoteke kot UTF-8 (brez BOM)
Večina sodobnih urejevalnikov besedil (kot so VS Code, Sublime Text, Atom, Notepad++) omogoča določanje kodiranja pri shranjevanju. Vedno izberite "UTF-8" ali "UTF-8 brez BOM". Kot smo omenili, čeprav BOM signalizira kodiranje, lahko včasih povzroči manjše težave pri razčlenjevanju ali nevidne znake, zato se je za spletno vsebino na splošno bolje izogibati.
3. Preverite in testirajte
- Orodja za razvijalce v brskalniku: Uporabite orodja za razvijalce v brskalniku za pregled glav HTTP za vaše datoteke CSS. Potrdite, da glava
Content-Typevključujecharset=UTF-8. - Testiranje na različnih brskalnikih in napravah: Testirajte svoje spletno mesto na različnih brskalnikih (Chrome, Firefox, Safari, Edge) in operacijskih sistemih, vključno z mobilnimi napravami, da ujamete morebitne nedoslednosti pri prikazu.
- Testiranje internacionalizirane vsebine: Če vaše spletno mesto podpira več jezikov, testirajte z vsebino v različnih pisavah (npr. arabska, ruska, kitajska, devanagari), da zagotovite pravilen prikaz vseh znakov. Posebno pozornost posvetite znakom, ki so morda zunaj osnovne večjezične ravnine (BMP), kot so nekateri emodžiji, ki v UTF-8 zahtevajo štiri bajte.
4. Razmislite o zasilnih pisavah za mednarodne znake
Medtem ko kodiranje znakov zagotavlja, da brskalnik pravilno interpretira bajte, je prikaz teh znakov odvisen od tega, ali ima uporabnikov sistem pisave, ki vsebujejo potrebne glife. Če spletna pisava po meri ne podpira določenega znaka, bo brskalnik uporabil sistemsko pisavo. Zagotovite, da so vaši nabori pisav robustni in vključujejo generične družine pisav (kot so sans-serif, serif) kot zasilno rešitev za obravnavo znakov, ki niso prisotni v vaših primarnih spletnih pisavah.
Pogoste pasti in odpravljanje težav
Kljub najboljšim praksam se lahko občasno pojavijo težave s kodiranjem. Tukaj je, kako prepoznati in rešiti pogoste težave, povezane s @charset in kodiranjem znakov:
1. Napačna umestitev @charset
Najpogostejša napaka je umestitev @charset kamor koli drugam kot v prvo vrstico. Če imate pred njim komentarje, prazne vrstice ali druga pravila, bo prezrt.
/* Moja slogovna predloga */
@charset "UTF-8"; /* To je pravilno */
/* Moja slogovna predloga */
@charset "UTF-8"; /* Napačno: prazen prostor pred */
/* Moja slogovna predloga */
@import url("reset.css");
@charset "UTF-8"; /* Napačno: @import pred */
Rešitev: Vedno zagotovite, da je @charset absolutno prva deklaracija v vaši datoteki CSS.
2. Neusklajenost med kodiranjem datoteke in deklariranim kodiranjem
Če je vaša datoteka CSS shranjena, recimo, kot ISO-8859-1, vendar deklarirate @charset "UTF-8";, se bodo znaki zunaj obsega ASCII verjetno prikazali napačno. Enako velja, če je datoteka UTF-8, vendar deklarirana s starejšim kodiranjem.
Rešitev: Vedno shranite datoteko v kodiranju, ki ga deklarirate (po možnosti UTF-8), in zagotovite skladnost s strežniškimi glavami in meta oznakami HTML. Uporabite možnosti urejevalnika besedil, kot sta "Shrani kot..." ali "Spremeni kodiranje", da po potrebi pretvorite datoteke.
3. Konfiguracija strežnika preglasi @charset
Če vaš strežnik pošlje glavo HTTP Content-Type, ki določa drugačno kodiranje kot vaše pravilo @charset, bo glava strežnika zmagala. To lahko privede do nepričakovanega mojibake, tudi če je vaš @charset pravilen.
Rešitev: Konfigurirajte svoj spletni strežnik, da vedno pošilja Content-Type: text/css; charset=UTF-8 za vse datoteke CSS. To je najbolj zanesljiv pristop.
4. Težave z BOM UTF-8
Čeprav je to manj pogosto pri sodobnih orodjih, lahko nezaželen BOM UTF-8 včasih ovira razčlenjevanje, še posebej v starejših različicah brskalnikov ali strežniških nastavitvah, kar občasno vodi do nevidnih znakov ali premikov postavitve na začetku datoteke.
Rešitev: Vse svoje datoteke UTF-8 shranite brez BOM-a. Mnogi urejevalniki besedil ponujajo to možnost. Če naletite na težave, preverite, ali je BOM prisoten z uporabo urejevalnika šestnajstiških vrednosti ali specializiranega urejevalnika besedil, ki lahko prikaže skrite znake.
5. Ubežanje posebnih znakov v selektorjih/vsebini
Če morate uporabiti znake, ki niso ASCII, neposredno v identifikatorjih CSS (kot so imena razredov, čeprav ni priporočljivo za globalne projekte) ali v nizovnih vrednostih (kot je content za psevdoelemente), lahko uporabite tudi ubežanje CSS (\, ki mu sledi kodna točka Unicode). Na primer, content: "\20AC"; za simbol evra. Ta pristop zagotavlja združljivost ne glede na kodiranje datoteke, vendar naredi slogovno predlogo manj berljivo za človeka.
.euro-icon::before {
content: "\20AC"; /* Ubežanje Unicode za simbol evra */
}
.korean-text::after {
content: "\C548\B155\D558\C138\C694"; /* Ubežanje Unicode za '안녕하세요' */
}
Uporaba @charset "UTF-8"; in neposredno vstavljanje znakov je na splošno prednostna zaradi berljivosti, ko je datoteka pravilno shranjena kot UTF-8. Ubežanje je robustna alternativa za specifične scenarije ali ko je potrebna absolutna gotovost.
Globalni vpliv pravilnega kodiranja
Na videz tehnična podrobnost kodiranja znakov in s tem pravila @charset ima globoke posledice za globalni doseg in dostopnost vaše spletne vsebine:
- Preprečevanje "Mojibake" po vsem svetu: Nič ne pokvari uporabniške izkušnje tako kot popačeno besedilo. Ne glede na to, ali gre za element menija, del oblikovane vsebine ali oznako gumba, lahko napačno kodiranje naredi besedilo neberljivo in takoj odtuji uporabnike, ki govorijo različne jezike ali uporabljajo ne-latinske pisave. Zagotavljanje pravilnega kodiranja preprečuje to "poškodbo besedila" za uporabnike povsod.
- Omogočanje prave internacionalizacije (i18n): Za spletna mesta, zasnovana za globalno občinstvo, je robustna internacionalizacija nujna. To vključuje podporo več jezikom, različnim formatom datuma/časa, simbolom valut in smerem besedila (od leve proti desni, od desne proti levi). Pravilno kodiranje znakov je temelj, na katerem so zgrajena vsa ta prizadevanja za internacionalizacijo. Brez njega se tudi najsodobnejši prevajalski sistem ne bo pravilno prikazal.
- Ohranjanje doslednosti blagovne znamke med regijami: Vizualna identiteta vaše blagovne znamke se razteza tudi na to, kako se prikazuje njeno besedilo. Če ime blagovne znamke ali slogan vključuje edinstvene znake ali je predstavljen v ne-latinski pisavi, pravilno kodiranje zagotavlja, da se ta ključni vidik vaše blagovne znamke prikazuje dosledno in profesionalno, ne glede na lokacijo ali sistemske nastavitve uporabnika.
- Izboljšanje SEO za globalno iskanje: Iskalniki se močno zanašajo na pravilno interpretirano besedilo za indeksiranje vsebine. Če so vaši znaki popačeni zaradi težav s kodiranjem, lahko iskalniki težko pravilno razumejo in kategorizirajo vašo vsebino, kar lahko škodi vašim globalnim uvrstitvam v iskalnikih in odkritju.
- Izboljšanje dostopnosti: Za uporabnike, ki se zanašajo na podporne tehnologije (bralniki zaslona, povečevalniki), je pravilen prikaz besedila ključnega pomena. Popačeno besedilo ni le nečitljivo za človeške oči, ampak tudi za orodja za dostopnost, zaradi česar je vaša vsebina nedostopna pomembnemu delu globalne uporabniške baze.
V svetu, kjer internet presega geografske meje, je ignoriranje kodiranja znakov enako gradnji jezikovnih ovir tam, kjer jih ne bi smelo biti. Skromno pravilo @charset, ko je pravilno razumljeno in implementirano, pomembno prispeva k rušenju teh ovir in spodbuja internet, ki je resnično globalen in vključujoč.
Zaključek: Majhno pravilo z velikimi posledicami
Pravilo CSS @charset, čeprav se zdi majhna podrobnost v obsežnem svetu spletnega razvoja, igra nesorazmerno veliko vlogo pri zagotavljanju globalne združljivosti in pravilnega prikaza vaših slogovnih predlog. Je temeljni del uganke kodiranja znakov, ki deluje v sozvočju z glavami HTTP, BOM-i in meta oznakami HTML za sporočanje jezika vaših bajtov brskalniku.
S sprejetjem UTF-8 kot univerzalnega standarda kodiranja za vsa spletna sredstva – od HTML in CSS do JavaScripta in strežniških konfiguracij – in z dosledno uporabo @charset "UTF-8"; na samem začetku vaših slogovnih predlog, postavljate trdne temelje za resnično mednarodno spletno prisotnost. Ta skrbna pozornost do podrobnosti preprečuje frustrirajoč "mojibake" in zagotavlja, da so vaša vsebina, oblikovanje in identiteta blagovne znamke brezhibno predstavljeni vsakemu uporabniku, povsod po svetu, ne glede na njihov materni jezik ali pisavo.
Ko nadaljujete z gradnjo za splet, se spomnite, da vsak znak šteje. Dosledna in jasna strategija kodiranja znakov, ki jo v vašem CSS vodi skromno pravilo @charset, ni le tehnična formalnost; je zaveza k resnično globalnemu, dostopnemu in uporabniku prijaznemu internetu.