Hlavní navigace

Názor k článku Ruby a unicode: bratři nebo nepřátelé? od LO - Já měl za to, že ve Windows je...

  • Článek je starý, nové názory již nelze přidávat.
  • 29. 10. 2007 5:22

    LO (neregistrovaný)
    Já měl za to, že ve Windows je Unicode slušně podporovaný na úrovni API (NT mají vše primárně unicodové), FS, fontů... v podstatě všude. .NET Framework je pochopitelně také Unicode-based. U aplikací je podpora někdy horší (třeba vypálit CD s Unicode názvy souborů je celkem problém), ale MS SQL Server, MS Exchange, MS Office a řada dalších je plně unicodových.

    Na Linuxu je Qt celkem dost unicodové. Problémem jsou mnohonásobné překlady mezi UTF-16 (Qt jede interně v UTF-16), UTF-8 (glibc se běžně krmí UTF-8 stringy, a pro většinu věcí jiné API nemá) a UTF-32 (pár locale-aware funkcí v glibc jede v UTF-32).

    Tragédií unixů je samozřejmě obcházení podpory Unicode používáním UTF-8, což vede k problémům na úrovni libc. strchr nemůže vyhledat znak, protože Unicode znak je v UTF-8 reprezentován více byte. scandir a open sice najdou i založí soubor, ale netuší, jestli je jeho název v Unicode. Pokud tedy scandir najde soubor, jehož jméno je v kódové stránce, volající UTF-8 based aplikace dostane nesmyslný UTF-8 string. Smutné také je, že se na unixech v praxi vyskytují jména souborů v code pages i UTF-8 na jednom FS.

    Z výše uvedeného je zjevné, že podpora Unicode na unixech by chtěla shodit ze stolu, vrátit se do stádia návrhu, a udělat jí znovu a lépe. Bohužel k tomu kdysi (cca 1990) nebyla vůle, a dnes je asi pozdě :(