Hlavní navigace

Názor ke článku Čeština? Jdi mi k šípku! od Ondrej 'SanTiago' Zajicek - > Proto se skrz původní char API tlačí...

  • 13. 5. 2008 17:49

    Ondrej 'SanTiago' Zajicek (neregistrovaný)

    > Proto se skrz původní char API tlačí UTF-8. Úpravy jsou přesto potřeba úplně všude. Například unixové FS ukládají chary. Jenže v jaké code page?

    Ale kdeze - pokud slo o konzolovy nefullscreenovy program (treba jako cp, gzip, ... ) kterych je v Unixu vetsina, tak ty jsou zcela kodovani-agnosticke a pro jejich UTF-8 podporu nebylo treba prakticky zadne upravy. Proste dostaly posloupnost bytu a tu predavali dal (ostatnim syscallum, nebo na konzoli). A pokud byly treba nejake upravy (kdyz treba formatovali vypis na obrazovku podle poctu znaku), tak problemy maximalne zpusobily rozhazenost vystupu, a ne nefunkcnost primarni funkce programu.

    > To UTF-8 se převede na UTF-16, a aplikace má název souboru. Když pak ten soubor chcete otevřít, zavoláte Qt s UTF-16 stringem, Qt ho převede na UTF-8, a zavolá glibc.

    Pokud to takhle Qt dela, tak to je znacna prasarna. Spravne reseni je mit v pameti tu posloupnost bytu, kterou dostanu od OS, a konvertovat do jine jen kdyz je to nutne (napr. v GUI), pro dalsi praci se souborem pouzit ale zas puvodni posloupnost bytu, nikoliv konvertovat zpet z interniho kodovani.

    Nevim, co dela GTK v kodu, ale API pouziva UTF-8.

    > Ve Windows se překládá dost podobně, ale pouze pro *ne-Unicode* aplikace, které postupně vymírají.

    A co se stane, pokud jmeno souboru obsahuje znak, ktery nelze prevest do codepage, ktere v danou chvili pouziva ANSI API? Pokud to jmeno ziskam pomoci ANSI API a pak ho predam treba fopen v ANSI API, otevre se ten spravny soubor?