none
Problém zobrazení diakritiky v 16-bit aplikacích

    Frage

  • Ve Windows 7 CZ u 16-bitových aplikací je špatně zobrazena diakritika při použití TrueType písem Consolas i Lucida Console.   
    Diakritika se zobrazuje správně pouze při použití rastrového písma.
    Při použití TrueType písem Consolas i Lucida Console je zobrazení chybné.

    Přitom ve Windows Vista je stejná verze fontu Lucida a vše funguje tak jak má, diakritika je zobrazena správně.

    Máte někdo nějaký nápad, jak přesvědčit VDM ve Windows 7, aby správně zobrazoval diakritiku u TrueType fontů?
    Dienstag, 5. Januar 2010 11:22

Antworten

  • Osobne bych doporucil resit pres Virtual PC/XP Mode.

    Win7 jsou posledni OS ktery byl napsan pro 32 bit a tedy ktery podporuje 16bit aplikace. Obavam se tedy ze sance na opravu je mimalni

    MP
    Freitag, 8. Januar 2010 09:33
    Moderator

Alle Antworten

  • 16 bitove DOS nebo WINDOWS aplikace?

    DOS: jaka je odezva prikazu CHCP v DOS okne?
    WINDOWS: jaka je default system locale (pro non-unicode programs) ? Czech?

    MP
    Dienstag, 5. Januar 2010 13:11
    Moderator
  • Děkuji za reakci.

    Jedná se o 16-bitové (DOS) aplikace.

    DOS: Před prvním příkazem to hlásí 852. Jakmile provedu nějaký další příkaz (třeba znovu CHCP), pak už hlásí jen 437.
    Příklad:
    Microsoft(R) Windows DOS
    (C)Copyright Microsoft Corp 1990-2001.

    C:\USERS\JAREK_M>chcp
    Aktivní znaková stránka: 852

    C:\USERS\JAREK_M>chcp
    Aktivní znaková stránka: 437

    C:\USERS\JAREK_M>  


    Windows: Čeština (Česká republika)

    Windows 7 mám na několika PC a chová se to na všech stejně.

    Dienstag, 5. Januar 2010 13:58
  • to bude IMHO zakopany pes.

    zkus dat (nastavit znova/natvrdo/rucne)

    >chcp 852



    a otestovat:

    >echo ěščřžýáíéĚŠČŘŽÝÁÍÉ >d:\soubor_CP852.txt
    >type d:\soubor_CP852.txt
    >notepad d:\soubor_CP852.txt

    MP
    • Als Antwort vorgeschlagen Miroslav PráglModerator Mittwoch, 6. Januar 2010 12:53
    • Nicht als Antwort vorgeschlagen JaMrek Freitag, 8. Januar 2010 08:10
    Dienstag, 5. Januar 2010 14:46
    Moderator
  • Mám stejný problém. Prosím o podrobný návod jak postupovat aby se mi u Lucida Console správně zobrazovala čeština. Děkuji
    Mittwoch, 6. Januar 2010 12:14
  • Vyse uvedene chcp jsi zkousel?

    tzn.

    1. spustit chcp 852
    2. zmenit font
    3. overit chcp

    nekdy je treba napr. zvetsit a zmensit font

    MP

    P.S. system locale pro neunikodove programy je ceska prespokladam? Ale i to jsem jiz psal!

    Mittwoch, 6. Januar 2010 12:53
    Moderator
  • Výsledek:
    Microsoft(R) Windows DOS
    (C)Copyright Microsoft Corp 1990-2001.

    C:\WINDOWS\SYSTEM32>chcp 852
    Aktivní znaková stránka: 852

    C:\WINDOWS\SYSTEM32>echo ╪τƒ²º∞áíé╪τƒ²º∞áíé >c:\temp\testCP852.txt

    C:\WINDOWS\SYSTEM32>type c:\temp\testCP852.txt
    escrzyáíéescrzyáíé

    C:\WINDOWS\SYSTEM32>notepad c:\temp\testCP852.txt

    Notepad mi zobrazil:
    escrzy ˇ‚escrzy ˇ‚

    Testuji to vždy na "čistých" Windows 7, pouze do autoexec.nt si přidám českou klávesnici:
    %SystemRoot%\system32\kb16 cz,852,%SystemRoot%\system32\keyboard.sys

    Problém se mi jeví v tom, že když na Windows 7 spustím command, tak je nastavena CP 852. Ale stačí zadat jeden příkaz, nebo cokoliv odklepnout, a už je tam zpátky CP 437. Příklad:
    Microsoft(R) Windows DOS
    (C)Copyright Microsoft Corp 1990-2001.

    C:\WINDOWS\SYSTEM32>ěščřžýáíé
    ĚŠČŘŽÝÁÍÉ není názvem vnitřního ani vnějšího příkazu,
    spustitelného programu nebo dávkového souboru.

    C:\WINDOWS\SYSTEM32>╪τƒ²º∞áíé
    ĚŠČŘŽÝÁÍÉ není názvem vnitřního ani vnějšího příkazu,
    spustitelného programu nebo dávkového souboru.

    Nepomůže ani dát příkaz CP 852, protože pak je stejně nastavena 437.

    Tento problém se objevil až na Windows 7, na Vistách se to nestávalo. Na Vistách byla diakritika v DOSovém okně vpořádku, i když jsem měl nastavené TrueType fonty. Na Windows 7 je diakritika vpořádku jen při použití rastrových fontů.

    Samotným TrueType fontem by to nemělo být, dělal jsem file compare souboru obsahující font Lucida Console ve Windows Vista a Windows 7 a byl identický.


    Děkuji za reakce a pokud budete mít nápad, jak přesvědčit sedmičky, aby DOS aplikace mohly být zobrazené s TrueType fonty a správnou diakritikou, budu za něj vděčný.

     

    Mittwoch, 6. Januar 2010 13:07
  • Zeptam se potreti a naposled na systemovou locale



    MP
    Mittwoch, 6. Januar 2010 14:50
    Moderator
  • Omlouvám se, napotřetí odpovím:
    Mám tam "Čeština (Česká republika)"

    V registrech, ve větvi:
    HKEY_CURRENT_USER\Control Panel\International
    Locale=00000405
    Mittwoch, 6. Januar 2010 15:18
  • Bavime se o cmd.exe?br/>
    ja kdyz spustim cmd.exe:

    Microsoft Windows [Version 6.1.7600]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

    C:\Users\XXX>

    MP

    Mittwoch, 6. Januar 2010 17:40
    Moderator
  • Ne, uvádím, že se jedná o 16-bit (DOS) aplikace.

    Je nutné spustit command, ten je 16-bitový; 
    cmd je 32-bitový.

    Donnerstag, 7. Januar 2010 08:14
  • Mea culpa. Uz dlouho pouzivam pouze 64 bit OS a nejak mi nedocvaklo ze existuje command.com


    MP
    Donnerstag, 7. Januar 2010 13:45
    Moderator
  • Podobný problém je popsaný zde:
    http://www.eggheadcafe.com/software/aspnet/35523754/code-page.aspx


    Připadá mi, že se jedná o chybu ve Windows 7. Nevíte, kde se to dá nahlásit, aby byla aspoň minimální šance, že se s tím někdo z MS bude zabývat?
    Freitag, 8. Januar 2010 08:16
  • Osobne bych doporucil resit pres Virtual PC/XP Mode.

    Win7 jsou posledni OS ktery byl napsan pro 32 bit a tedy ktery podporuje 16bit aplikace. Obavam se tedy ze sance na opravu je mimalni

    MP
    Freitag, 8. Januar 2010 09:33
    Moderator
  • Ve Windows 7 se oproti Windows Vista objevilo to, že se ztrácí informace o kódové stránce. Dokonce není nutné spouštět žádné aplikace.
    Ve W7 je možné chybu navodit opakovaně následujícím postupem:
    "Start", "Spustit", "cmd", "graftabl" (zobrazí informaci o kódové stránce ještě je správná např 852), "command", "exit", "graftabl" (zobrazí informaci o kódové stránce je již chybná 437).

    Ve Windows Vista se tento postup chová mravně a vrací se zpět do stejné kódové stránky jakou opouštěl. Na mě to dělá dojem, že chybí někde v registrech informace o kódové stránce (Active Code Page) do které se má OS vrátit.
    Dienstag, 2. Februar 2010 12:59
  • Řeším shodný problém s FoxPro2.6a DOS a našel jsem takové půl řešení, někomu může posloužit. COMMAND spouštěný ze svého zástupce na ploše nezapomína svou codepage a font lucida korektně zobrazuje české znaky. V souboru config.nt musí být odremována položka NTCMDPROMPT. Aplikaci foxpro následně spouštím přidáním do zástupce, záložka Program položka "Příkazový řádek" C:\Windows\sys.....COM < C:\aplikacefox\start.bat, pracovní adresář upraven shodně na c:\aplikacefox - možná není potřeba. Bohužel některé položky v start.bat způsobují ukončení bez spuštění. Třeba PAUSE nelze použí NET USE a SET fungují. Testováním nalezen funkční start.bat (z 30 řádek zredukováno na 6) Např. Kontrola viz kód není funkční (na XP ok).

    rem Kontrola
    tasklist | find /c "ntvdm"|find "1" > nul
    IF ERRORLEVEL 1 goto ok
    cls
    echo APLIKACEFOX JE JIZ SPUSTENA MRKNI NA LISTU
    PAUSE
    exit
    :ok
    c:
    CD \aplikacefox

    blabla ...

    J.

    Donnerstag, 14. April 2011 15:03
  • je to chyba WIN7 a lenost MS, Ve "Windows 8 def. prev.", čeština kamenických funguje naprosto v pohodě
    Freitag, 11. November 2011 14:54