webdesign, webhosting, software, sítě, databáze
Každý problém má své řešení.

Aktuality

PF 2019 (21.12.2018)

AIKEN Vám přeje veselé Vánoce a mnoho zdraví, štěstí a úspěchů v roce 2019.

Vydání knihy Staré/nové kutnohorské pověsti (13.12.2017)

Vydali jsme výpravnou, celobarevnou knihu Staré/nové kutnohorské pověsti od akademické malířky Jitky Jelínkové. Knihu si můžete objednat v našem LinuxMarketu nebo zakoupit v kutnohorských knihkupectvích a na dalších místech.

další články ze sekce Aktuality...

Doporučujeme


Firemní blog

RoundCube a třísloupcové zobrazení (23.8.2013)

S rozmachem širokoúhlých monitorů se postupně mění také uživatelská rozhraní programů. Například při práci s poštou je dnes standardem třísloupcové zobrazení. Jak ho získat ve webmailu RoundCube?

Proč používat službu Přidej.cz? (22.3.2013)

Služba Přidej.cz spojuje hned tři hodnoty na jednom místě, a to zcela zdarma. Usnadňuje sdílení, posiluje SEO a nabízí přístup k zajímavým odkazům a k informacím o nich.

další články ze sekce Firemní blog...

Proč používám UTF-8

Problém, jak řešit zakódování národně specifických znaků, se ve výpočetní technice řešil již od dřevních dob (přesněji řečeno od okamžiku, kdy chtěl někdo používat něco víc než holé anglickou abecedu). Pro české znaky se v historii používala mnohá kódování, každé mělo nějaké výhody a nevýhody (na legendární kódování bratří Kamenických si ještě leckdo vzpomene, občas ho ještě někdo použije i dnes). Po postupném vystřídání všeho možného jsem zjistil, že je nejvýhodnější používat UTF-8.

Pominu-li zmiňované bratry Kamenické a různé pokusy o národní kódování (říkám pokusy, protože třeba kódování KOI8ČS se neujalo, přestože bylo určeno ČSN jako "jediné správné"), stejně tak jako používání proprietárních kódových stránek, za první skutečně významný krok lze považovat zavedení skupiny kódování podle normy ISO 8859. Znaky české abecedy jsou součástí ISO 8859-2 (což asi každý ví), proto bylo (a stále je) naprosto běžné používat tuto sadu.

Protože přepínání kódových stránek se změnou jazyka je věc dost nepříjemná, objevil se fenomen zvaný Unicode - systém, který umožňuje snadnou práci s libovolným počtem národních abeced současně. Snaha o normalizaci tohoto systému vyústila v normu ISO/IEC 10646, která pokrývá hlavní část tohoto systému (a do budoucna se plánuje pokrytí celého standardu).

Unicode si samozřejmě nevystačí s jedním bajtem pro každý znak. Nejobvykleji se každý znak ukládá dvoubajtově (UCS-2), lze použít i čtyřbajtovou reprezentaci (UCS-4). Tyto reprezentace se hodí hlavně pro vnitřní uložení v paměti, pro ukládání dat a jejich přenos jsou vhodnější tzv. transformační formáty (UTF). Jsou v zásadě tři: UTF-8, UTF-16 a UTF-32 (u dvou posledních se rozlišují ještě varianty podle pořadí bajtů). Formát UTF-8 zakódovává každý Unicode znak jako osmibitové hodnoty, a to tak, že podle potřeby (resp. podle hodnoty) používá 1-4 bajty.

Právě UTF-8 jsem si v poslední době velmi oblíbil, zjistil jsem totiž, že mi přináší téměř samé výhody:

  • Odpadají problémy s "cizími" znaky. Někdy je potřeba v textu použít, byť třeba jen jediný, znak nepatřící do běžné národní abecedy. Co s tím? Při použití běžného osmibitového kódování to většinou vede na použití znaku co nejpodobnějšího, ale stejně to není ono. UTF-8 to hravě vyřeší.
  • Více jazyků pohromadě - žádný problém. Stalo se mi, že jsem musel použít na jedné webové stránce pohromadě třeba češtinu a ruštinu (nebo dokonce i hebrejštinu, ale to už je extrém). S UTF-8 je to absolutně bez problémů, "klasická" kódování žádné řešení nenabízejí (různé jazyky dokonce nelze použít ani v různých rámech, jakkoli jsou rámy zvěrstvo největší).
  • Není třeba řešit platformy. Kdo pracuje na stejných souborech ve více systémech, má určitý problém s kódováním. Když si jako základ určí třeba ISO 8859-2, ve Windows ho editor klidně otevře jako CP1250 (nebo to může člověk udělat omylem ručně) a na guláš je zaděláno. To se s UTF-8 nestane, automatická detekce ho většinou rozpozná bez problémů, a při ručním otvírání si člověk hned všimne, pokud by kódování vybral špatně.
  • ASCII projde transparentně. Protože hodnoty do 127 (tedy 7 bitů) se do UTF-8 ukládají jednobajtově, jsou čisté ASCII texty zpracovávány zcela transparentně. To je výhoda oproti jiným reprezentacím Unicode, a to výhoda dost podstatná.
  • Default na RedHat / Fedora Core. Tohle už je poměrně specifická věc, ale pro mě má význam. Protože už dlouhodobě používám GNU/Linux právě z těchto distribucí, obecně jsem si zvykl používat UTF-8, mimo jiné právě proto, že je to zde výchozí kódování.

Samozřejmě, že UTF-8 má i své nevýhody. Texty zabírají více místa, ne všechny programy s nimi umí správně pracovat (hlavně ty starší), jsou hůře čitelné v ASCII reprezentaci, pro výměnu dat s jinými lidmi (kteří UTF-8 zatím nepoužívají) je nutná konverze apod. Ale výhody jednoznačně převažují, proto je pro mě UTF-8 dobrou volbou.


Článek byl původně napsán pro blog na serveru ABC Linuxu.

Zpět do sekce Firemní blog


AIKEN s.r.o.
Lorecká 465, 284 01 Kutná Hora
tel. 312 312 413, mobil 606 362 315
www.aiken.cz, aiken@aiken.cz

GEO: 049.95426, 015.27013