4it101»Adv Cestina

Adv Cestina

Čeština

Pokud si spustíte v operačním systému firmy Microsoft adventuru, tak se špatně zobrazí české znaky. Problém je způsoben tím, že české verze používají dvě znakové sady - CP 1250 pro grafickou část systému a CP 852 pro příkazovou řádku. Není to problém jen českých verzí, např. i anglická verze Windows používá dvě znakové sady: CP 1252 a CP 850. Java (konkrétně JVM) při spuštění zjistí znakovou sadu použitou v operačním systému, v českých Windows je to CP1250. Tuto znakovou sadu používá při výpisu i při čtení a to jak v grafické aplikaci, tak na příkazové řádce. Na příkazové řádce se však používá kódová stránka CP 852, takže se chybně zobrazují a čtou české znaky.

Existují dvě řešení problému:

a) nastavit pro Javu jiné kódování

Při spouštění Java aplikace pomocí programu java lze zadat znakovou sadu pomocí proměnné file.encoding. Spuštění bude vypadat takto:

      java -Dfile.encoding=CP852 Start

V případě jar archivu to bude

      java -Dfile.encoding=CP852 -jar archiv.jar

b) nastavit jiné kódování příkazové řádky'''

Ve Windows XP (a asi i v jiných operačních systémech od firmy Microsoft - nezkoušel jsem) lze nastavit znakovou sadu okna příkazové řádky pomocí příkazu chcp. Nejdříve se musí oknu příkazové řádky nastavit font, který podporuje více znakových sad (tj. podporuje Unicode), neboť ve standardní instalaci má přiřazeno rastrové písmo jedné znakové sady. Font lze nastavit přes menu, které se zobrazí po kliknutí druhým tlačítkem myši na horní lištu okna příkazové řádky. Zde vyberte font Lucida Console či jiný TrueType font. Při uložení nastavení si můžete vybrat, zda se tento font použije pouze pro aktuální okno či i pro budoucí okna příkazové řádky.

Nyní lze před spuštěním aplikace změnit znakovou stránku pro okno

    chcp 1250
    java Start

či v případě spuštění aplikace z jar archivu

    chcp 1250
    java -jar archiv.jar