Šuplík Honzy Hučína

Skok na navigaci (menu)

Tento blog je v současné době uzavřen.
Pokračování blogu na bloguje.cz jsem zrušil. Pokud budu někdy pokračovat, bude to spíš tady.

Komentovaný článek

Internet a vše kolem
18. 11. 2004

Azbuka v HTML

Umět написать русские буквы v HTML může být důležité, ať už kvůli jazykové mutaci stránek, nebo jen pro správný přepis originálu. Jelikož ale azbuka na české klávesnici a v českém lokálním nastavení Windows není, nedá se zapisovat přímo do kódu stránky.

Existují tři základní možnosti:

  1. Zapsat jednotlivé znaky azbuky pomocí entit Unicode při zachování národního kódování (Windows-1250, iso-8859-2).
  2. Použít pro celou stránku kódování UTF-8 (tagem meta).
  3. Použít pro celou stránku kódování windows-1251.

První a druhý způsob používá univerzální kódování, pomocí něhož lze zapsat prakticky všechny celosvětově používané znaky. Je ovšem trochu obtížnější na zápis a náročnější na přenos dat. Třetí cesta se použije tam, kde chceme mít (téměř) celou stránku v azbuce. Ve všech případech je ale dobré mít při ruce konverzní tabulku.

Způsob 1 těží ze schopnosti současných prohlížečů rozumět zápisům typu &#nnnn;, kde nnnn je čtyřmístné číslo. Dají se tak zapisovat znaky všelijakých abeced, prakticky z celého světa, aniž se mění základní kódování stránky. Potíž je v tom, že na jeden Unicode znak musíte napsat sedm(!) normálních znaků. Psát takhle delší text nebo celý web je děs. Lze si práci ulehčit třeba nějakým konvertorem, ale tím problémy jen posunete na uživatele. Ten totiž musí stáhnout sedmkrát větší objem dat než u textu bez Unicode kódování. Proto lze první způsob doporučit jen pro jednotlivé znaky, maximálně několik slov.

Druhý způsob je myšlenkově podobný prvnímu, pouze se speciálním způsobem musejí zapisovat jak typicky české znaky, tak azbuka. Bez softwaru, který zajistí konverzi, se zápis v kódování UTF-8 stává tvrdým oříškem.

Třetí způsob je pro přenos dat úspornější (jeden přenesený znak odpovídá jednomu vykreslenému znaku), ale neodstraňuje tak zcela potíže se zápisem. Kdo si má pamatovat, že я se zapisuje jako ß a malý tvrdý znak jako velké Ú? A jak vlastně některé podivné znaky vůbec zapsat? Naštěstí ve Windows funguje zápis pomocí Alt: podrží se (levé) Alt, na numerické klávesnici se naťuká kód, načež se Alt pustí.

Pozor na to, že na stránce kódované pomocí windows-1251 již nelze použít některé české znaky (ty se při tomto kódování změní na znaky azbuky)! Tento postup se tak dá uplatnit hlavně u stránek, které jsou celé psány azbukou.

Zde je tabulka kódování azbuky pomocí Unicode a windows-1251.

Doporučuji se podívat i na převodník kódování různých abeced.

Vložit vlastní komentářNávrat k článkuRSS komentářů tohoto článku

Komentáře

[1] 18. 11. 2004, 12:46 – pachollini (Odkaz)

> Bez softwaru, který zajistí konverzi, se zápis v kódování UTF-8 stává tvrdým oříškem.

WinXP Notepad umí UTF-8, takže stačí nainstalovat ruskou klávesnici a můžeš vesele psát v Notepadu (eventuálně s použitím neocenitelné aplikace "Mapa znaků" ;-)

[2] 18. 11. 2004, 14:09 – kouba

> Druhý způsob je myšlenkově podobný prvnímu, pouze se speciálním způsobem musejí zapisovat jak typicky české znaky, tak azbuka.

Ano, to je holý nesmysl (jaké "speciální znaky"??), naopak UTF-8 je velmi korektní, pokud chci multi-lingual webovou aplikaci, nemusí se nic překonvertovávat ani překódovávat - samozřejmě pokud mám background, který s UTF-8 umí pracovat (tedy ne takové ty hračky jako mySQL a PHP, které nejsou schopny texty v UTF-8 třídit, o existenci UTF-8 vpodstatě krom posledních verzí ani nevědí...)
Škoda, že můj nejoblíbenější PSPad není UNICODE editor a tedy azbuku v UTF-8 v něm nelze psát, je opravdu potřeba použít Poznámkový blok.

[3] 18. 11. 2004, 17:04 – Pavel Šrubař (Odkaz)

Ty zabyl o četvjortoj vazmožnosti. Ona samaja lučšaja dlja rebjat, katoryje nělubljat azbuku.

[4] 18. 11. 2004, 17:30 – Jan Bednařík

[2] "ne takové ty hračky jako mySQL a PHP, které nejsou schopny texty v UTF-8 třídit, o existenci UTF-8 vpodstatě krom posledních verzí ani nevědí..."

Teď jsi mě rozesmál. Dám ti dobrou radu: Když o tom nic nevíš, tak o tom nic nepiš.

[5] 18. 11. 2004, 23:30 – quido

> Teď jsi mě rozesmál. Dám ti dobrou radu

mno, možná než dávat rady by bylo opravdu lepší mlčet, ty články na Intervalu.cz skutečně svědčí o tom, že o současných trendech a technologiích mnoho nevíte - babráte se tam v tom jako stará struktúra, která se před 5 lety cosi naučila a dodnes se nepohnula vpřed ani o píď, tak nevím...

[6] 18. 11. 2004, 23:52 – Jan Bednařík

[5] Já již něco přes rok dělám v PHP zásadně v UTF-8 a nikdy jsem s tím problémy neměl. Je chyba někde u mě?

[7] 19. 11. 2004, 08:27 – Honza Hučín (Odkaz)

Ad [1] To je zajímavý tip, nevěděl jsem to (používám Win2000, resp. Win98).
Ad [2] Možná jsem se nepřesně vyjádřil. O "speciálních znacích" jsem nepsal, pouze o tom, že se musí speciálním způsobem (tj. nejméně dvoubajtově) zaznamenávat české znaky i azbuka. A to proto, že obojí je již mimo základní ASCII sadu 0-127. Aspoň tak jsem UTF-8 pochopil. "Zaznamenávat" neznamená, že to kodér vždy tak píše (viz např. [1]), ale že se to tak objeví v přenesených datech.
Ad [3] :-))) Taky možnost, ale nevím, jestli ji ocení Russian native speakers.

[8] 4. 1. 2006, 02:24 – Karel Pavelka

Nová verze PSPadu 4.5.0 umožňuje už psát v azbuce. http://www.pspad.com/cz/download.php

[9] 12. 1. 2006, 20:46 – Pivo

[7] Já používám taky Win2000, ale i tam umí blbý notepad pracovat s UTF-8. A to nemluvím o pořádných editorech...

Píšete o UTF kódování jako o něčem strašně komplikovaném, na co je potřeba speciální konvertor, ale vždyť je to právě naopak! Místo zápolení s hromadou národních kódování a místo zapisování znaků ve formátu &#xxxx; prostě nahážu do kódu co chci a uložím ho v UTF-8. Pak můžu mít vedle sebe českou diakritiku, azbuku a třeba ještě čínštinu a vůbec žádné problémy s kódováním mě netrápí...

[10] 21. 3. 2006, 15:10 – Vilém Málek (Odkaz)

[9] Vás ne, ale vaše uživatele z toho může bolet hlava a na vaše stránky se třeba vůbec nepodívají. Podpora UTF8 stále ještě není dostačující, podpora UTF16 je k nepoužití. Navíc mají s UTF8 problémy různé další dost podstatné nástroje pro tvorbu webu, jako jsou databáze a skriptovací enginy...

[11] 12. 7. 2008, 14:54 – Razer (Odkaz)

Myslím si že dnes v době "videointernetu" už problém v podobě 7x většího objemu dat odpadává.

[12] 18. 7. 2012, 09:24 – Honza

Souhlasím s Razer, dnes už velký objem dat není problém.

[13] 1. 8. 2012, 17:09 – Honza

Všude používám kodování UTF-8 a nikdy jsem neměl problém se zobrazováním znaků.

K tomuto článku není možné vkládat komentáře.

© Honza Hučín 2004–6

Šuplík běží na PIPNI.CZ. Díky!

sber.cermat.cz

RSS Šuplíku

RSS komentářů – souhrnně

U každého článku je samostatný RSS kanál pro komentáře.

Výběr článků

Posledních 10 článků

nebo podle data:

nebo hledání fulltextem:

Archiv všech článků

Poslední komentáře

Zabili mě, parchanti [2]

8. 8. 16:48 | Pepa

Cestou kolem blogu [2]

7. 8. 21:26 | Honza Hučín

Cestou kolem blogu [1]

7. 8. 21:02 | Honza

Vrtulník nad hlavou [3]

6. 8. 14:29 | Pepa

Taková hra na volby [1]

3. 8. 18:29 | Honza

Nejčtenější

Cestou kolem blogu (1)

O mně

*1967, absolvent MFF UK v Praze (1991)

statistik, analytik, programátor, učitel, hudebník

nyní Ústav pro informace ve vzdělávání

Životopis (RTF)

Napište mi