UTF-8

MyEgo.cz

home foto blogy mywindows.cz kontakt

UTF-8

JEdit

UTF-8 je geniální kódování. Pokud programuji BLOG:CMS, musím pochopitelně počítat s tím, aby onen zdrojový kód běžel bez problémů nejen v Česku, ale i (třeba) v Rusku, Japonsku či Číně. Kdekoliv.

Mírný problém je sice se zpracováním UTF-8 řetězců v PHP, zejména funkce představené ve stařičkém PHP 3.x s UTF-8 vůbec nepočítají, například takové funkce substr() či strstr() pracují bajtově, a rovněž tak řada dalších funkcí, nicméně, stále je to menší problém, než počítat ve Vašem kódu s desítkami různorodých znakových sad.

Nové funkce v PHP 4.3/5.0 navíc již s UTF-8 počítají, včetně funkcí / metod pro práci s XML, neboť UTF-8 je implicitní kódování pro XHTML / XML.

Problémem není ani editace zdrojového textu v UTF-8 na libovolné platformě, jeden z nejlepších programátorských editorů, JEdit, nativně pracuje s UTF-8 a je psaný pod Javou, tudíž běží na každém OS, kde je implementována JVM. Pár lidí používá na Windows rovněž PSPad, nicméně, ten se pro rozsáhlejší projekty skutečně nehodí, a to nejenom proto, že jeho podpora UTF-8 je jen částečná (rozumějte, velice nedostatečná).

Řada nových Linuxových distribucí (SUSE 9.1, Fedora Core 3, MDK 10.1) se rovněž implicitně instaluje s nativní podporou pro Unicode / UTF-8.

Ještě před rokem jsem dělal projekty ve windows-1250, windows-1251, windows-1252, iso-8859-2, iso-8859-1, prostě podle potřeb daného projektu, a řešil jsem řadu problémů při konverzích, a dnes vlastně ani nevím proč jsem už dávno nepoužíval UTF-8. S přechodem na UTF-8 se řada problémů, které člověk s různými kódovými stránkami měl, automaticky vyřešila.

Nebylo by od věci zrušit veškeré existující kódové stránky a schémata, a používat jen UTF-8. Spousta věcí by se dělala mnohem snadněji.

Nenapadá mě rozumný důvod, proč vlastně něco jiného než UTF-8 ještě používat…


PS: ne, úspora pár bajtů a přenosové kapacity ten důvod proti UTF-8 není. Internet zahlcují P2P sítě, ne používání UTF-8.


Komentáře

  1. 1 Michal Altair Valášek 23.11.04, 03:11:19
    FB

    Ten zásadní důvod, proč něco jiného než UTF-8 používat, jste popsal hned v úvodu: *obrovské* množství "legacy" aplikací, které jsou napsané tak, že počítají jenom se single-byte kódováním.

    Takový EBCDIC upadl v zapomění velmi rychle (tak rychle a hluboce, že většina ze čtenářů asi nebude ani tušit co to je), ale řekl bych, že se starým dobrým Americkým standardním kódem pro výměnu informací (ASCII) a jeho variacemi si tady ještě pár desítek let pobudeme - stihl se příliš rozšířit.

  2. 2 Solvina 23.11.04, 10:11:25
    FB

    Just notice about your notice about JEdit:
    Saying JAVA is good because it works on all OSes is like saying anal sex is good because it works on all genders.

  3. 3 Rad 23.11.04, 12:11:08
    FB

    Používám UTF-8 a narážím při tom na jeden problém.

    Když k souboru v UTF-8 přidám Unicode Signature (BOM), dokáží kódování rozpoznat všechny editory, které UTF-8 podporují. Nicméně, pracuji s šablonovým systémem a když se jednotlivé bloky stránky dají dohromady, vloží se všetně několika BOM naků. MSIE Pak tyto znaky internpretuje jako neznámí znak a navíc jej doplní odřádkováním.

    Pokud Signaturu nepoužiji, menší editory JEdit, PsPad a podobně UTF-8 nerozpoznají a soubor se v nich neotevře korektně.

    Řešení bude jistě jednoduché, tak me prodím jen nakopněte.

    PS: Defaultně používám Dreamweaver, který s tímto problémy nemá.

  4. 4 Radek Hulán 23.11.04, 12:11:21
    FB

    [3] mě tedy v JEditu funguje zvolit si v Global Options / General jako Default Encoding UTF-8..

  5. 5 Ladislav Thon 23.11.04, 12:11:23
    FB

    Internet IMHO zahlcují spamy, ne P2P sítě ;)

  6. 6 Radek Hulán 23.11.04, 12:11:25
    FB

    [5] to se pleteš, více než 50% veškerého trafficu na internetu tvoří stahovači z P2P sítí..

  7. 7 Solvina 23.11.04, 01:11:17
    FB

    [6] No a podle jinych pruzkumu 75% prenosu na internetu je spam.
    Aha! Nektery spam je ocividne siren pomoci p2p.

  8. 8 mirrda 23.11.04, 02:11:57
    FB

    75% spamu? to je imho blbost...

    taky jsem začal používat před nedávnem utf-8. ty prohlížeče, které neumí utf-8, neumí ani iso ani win-xxxx. třeba msie3.

  9. 9 Adam Hošek 23.11.04, 03:11:05
    FB

    [6] [7] P2P jednoznačně zatěžuje internet. Spam, aspoň ten e-mailový, ale tvoří jen malou část. Pokud někde píšou, že spam bere 75 % přenosu, tak bych to odhadoval spíš na 75 % přenosu na HTTP a SMPT/POP3/IMAP. Ostatně hodně lidí si myslí, že internet jsou ty stránky. Samotný WWW bere cca 5-10% celýho trafficu :).

    No tak ještě k tématu - Já osobně bych teda za UTF-8 přímo v OS byl docela rád. Jenže u Microsoftu se s tim nedá moc počítat. Mám dojem, že do Longhornu něco s UTF-8 slibovali, ale jestli ono se to netýká jen filesystému?

  10. 10 izsak 23.11.04, 04:11:07
    FB

    [7] Spam tvorí 75% mail trafficu.

    [9] NTFS 4.0 (Win 2000 a vyššie) už štandardne používa Unicode pre názvy súborov.

    Ja som UTF-8 začal všade používať asi pred 1 rokom a zatiaľ nikde nebol neriešiteľný vážnejší problém.

  11. 11 Solvina 23.11.04, 05:11:33
    FB

    [9] [10] Ano, mate oba pravdu to sluvko 'mail traffic' mi "vypadlo" - u vas demagog holt nepochodi :-).

  12. 12 paranoiq 24.11.04, 11:11:56
    FB

    [10] nezaměňujte "normální" šestnáctibitový unicode s utf (s proměnnou délkou znaků 1-6 bytů). ntfs jede na obyč. unicodu.

  13. 13 Non_E 02.04.05, 04:04:35
    FB

    Jak to čtu, tak je celkem s údivem, že k fc3 namountuju fat32 disk (aby kompatibilně fungoval s winxp)jen s iocharset=utf8. Buď mám štěstí na shodu náhod nebo winxp fakt používají na filesystem utf8. Jinak obsah souborů je samozřejmě ve win1250 :-(