Odpověď na názor

Odpovídáte na názor ke článku Čeština? Jdi mi k šípku!.

  • 13. 5. 2008 14:10

    8an (neregistrovaný)

    [27] S tím že se ve Windows počítalo s Unicode ve fází návrhu a v Unixu to byl problém je to trochu složitější. Windows NT skutečně interně funguje v UCS-16LE (16-bit little endian). Jenže tohle kódování není zpětně kompatibilní s ASCII (kde znak 0 ukončuje řetězec). Takže veškeré API funkce pracující s řetězci musí být ve Windows zdvojené: pro UNICODE a ANSI kvůli kompatibilitě. A obě verze budou muset v Microsoftu udržovat ještě mnoho let...

    Zatímco Unix prostě přešel na UTF-8, kde jsou řetězce pořád stejně ukončeny nulou, nemuselo se měnit vůbec nic v jádře ani většina knihoven, úpravy byly potřeba akorát u shellu, ncurses apod. A ty bohužel pořád nejsou hotové, Midnight Commander má stále s UTF-8 problémy, ale stejně tak Total Commander na Windows stále nepodporuje Unicode.

    U UTF-8 se bere jako nevýhoda, že znaky mají různou délku, nedá se podle počtu bajtů určit počet znaků nebo odříznout prvních N znaků posunem pointeru. Jenže se ukázalo, že na Windows je úplně stejný problém: do 16 bitů se nevejdou všechny čínské znaky (těch jsou stovky tisíc), takže se musí používat tzv. 'Combining characters', kdy se písmeno skládá z více znaků. No a s tím jsou úplně stejné problémy jako v UTF-8.