Why does a Win32 application show Korean Characters correctly on one Windows 10 computer but not another with the same version and language packs?

Our company supports a Win32 App. One of our customers uses both English and Korean (Hangul) characters. One of the two computers displays Korean characters correctly in a particular set of fields, and one displays Korean characters incorrectly like: ÁÖ´ÔÀÇ Á¦ÀÚ±³È (just in case that gets converted to Hangul when posted: Garbage Text ). In a field that supports RTF, the text looks like this: 주님의 제자교회

Both computers are Windows 10 Pro version 1809 Both have the Korean language pack and both can show Hangul in other applications. I have also duplicated the issue here in our office with Windows 10 version 1903.

Both computers are using the same executable file and data set. The program is launched by users from a shortcut that points to a server in the office.

Another question that is quite similar to this one is here but that one did not have two computers with one working and the other not.

Anyone have any idea of what I might check?


I suspect it's down to the setting for system locale, which applies to non-Unicode applications. It's in the same place as it was in Windows 7, but a bit harder to get to.

  1. First, we need to open the old Region control panel applet. You can do this in one of three ways:

    • Launch intl.cpl, or
    • Open the old Control Panel and go to Clock and Region => Change date, time or number formats, or
    • Open the new Settings app, click Additional date, time & regional settings on the right, and click Change date, time or number formats in the old Control Panel that should have come up.

    That should bring up this applet:

    Screenshot of control panel applet

  2. Click the Administrative tab and check the section labelled "Language for non-Unicode programs". I suspect they will be different. Use "Change system locale..." to change them to match.

    Screenshot of Administrative tab

Note that this is a system-wide setting and may break non-Unicode applications that assume Windows is on the default locale (some variant of Western European, usually). There used to be a tool called AppLocale to set the locale on a per-program basis, but that was discontinued after XP. Your best bet if you need that on Windows 10 is Locale Emulator.

That said, these days most programs support Unicode so it's quite possible that changing the system locale won't affect much more than the one legacy program you're using.