RSS Feed for This PostCurrent Article

Run Non-Unicode Applications on Unicode (UTF-16) based Windows XP

Need to run legacy (code-page based) applications on your Windows XP or Server 2003, but don’t want to change the system locale? Here’s a new utility that saves you a reboot: introducing the Microsoft AppLocale utility!

The Microsoft AppLocale (or Application Locale) utility is a temporary solution to these limitations caused by non-Unicode applications running on the Unicode (UTF-16) based Windows XP. AppLocale detects the language of the legacy application and simulates a corresponding system locale for code-page to/from Unicode conversions.

Unicode based platforms, such as Windows XP and Server 2003, emulate the language environment required to run non-Unicode applications by internally converting application’s non-Unicode text data to Unicode using a system wide variable commonly called the “system locale” (or “language for non-Unicode applications”). The language of the non-Unicode applications should be the same script or family as the one defined by the “system locale”. Failing to meet this condition results in display of garbage characters in the UI of the application.

The AppLocale utility allows users to run a legacy application without changing to the code-page/system locale needed by that particular application. AppLocale emulates the code-page required by that legacy application without changing the machine’s system locale. This emulation is only applied to the application that has been chosen during the AppLocale configuration wizard. AppLocale can be an attractive workaround in these situations:

  • A user is running the English version of Windows XP with the system locale set to English-US (Windows codepage 1252). This user wants to run a popular Japanese application that is code-page based. In order to run this app flawlessly in Windows XP, the user needs to set the system locale to Japanese (Windows codepage 932) and reboot the machine. Two restrictions: the user might not be an administrator to force this setting change; and/or the user might not want to force a reboot.
  • An educational center in Israel has all its machines running localized Hebrew versions of Windows XP with their system locale set to Hebrew (Windows codepage 1255). This allows even non-Unicode Hebrew applications to run properly. But this educational center also offers Russian courses that use a legacy Russian application (required codepage 1251). This Russian application cannot run unless the system locale of the target machines is changed to Russian and a reboot is forced. Keep in mind that with this new configuration, existing Hebrew legacy applications will stop functioning properly.


Trackback URL


Sorry, comments for this entry are closed at this time.