After some experimentations I figured out that the problem was due to the fact that the language for non-Unicode programs was set to Japanese and Chinese, respectively, and that changing the language to English solved the problem without affecting the language of Windows itself. However, some non-Unicode programs developed under non-English versions of Windows may no longer work, so you may need to change the language setting of non-Unicode programs to their original settings before you can use them.
Second, make sure that your default language is correctly selected. For example, English United States is set to Default. Finally, click OK. This assures that English is the default language.
Then, install the font you want to render the given locale. Open a document with characters from that range. In absence of the previous font font, Windows seems to fall back to the one available with characters defined in that range. Then install all the other fonts. The one Windows had already set does not get changed even when the "original" default font is available again.
Stack Overflow for Teams — Collaborate and share knowledge with a private group. Create a free Team What is Teams? Collectives on Stack Overflow. Learn more. Asked 11 years, 10 months ago. Active 1 month ago. Viewed 7k times. Thank you for your help. Improve this question.
Mode Mode 2 2 silver badges 10 10 bronze badges. Find centralized, trusted content and collaborate around the technologies you use most. Connect and share knowledge within a single location that is structured and easy to search.
Could anyone advise how to programmatically change the default Windows XP code page I'm doing this from Delphi? Which is exactly what changing the non-Unicode codepage drop down in Control Panel does.
There must be another setting which I need to change - and I'd prefer to use a Win API call if available rather than writing to the registry myself. This is because I'm using an ANSI application that needs to render Chinese characters, and I'm writing a tool to automatically switch the system show the characters while leaving other aspects of the UI intact.
The only time this would be appropriate is if you're writing a kiosk type application where nothing else will run on the system. That change will affect every other application on the system. If you just need to render the characters and can get them into a WideString you can render them in older versions of Delphi by calling the W versions of the Windows APIs directly, rather than going through the TCanvas methods. It supports making Unicode-enabled applications in Delphi , and handles calling all of the W functions for you.
That was originally the TNT Unicode Controls pack, and there's an older, unsupported version of that available here.
0コメント