Make Windows correctly display characters from languages other than English (set non-Unicode programs)

Do you use Windows in English, and run apps, files and multimedia files in other languages with different characters? Have you ever had problems with apps or content written in languages which use different characters from those found in English? Languages like Spanish, German, Polish, Arabic, Russian, Romanian or Hebrew? If you do, then you should read this article and understand how to make Windows correctly display characters from other languages:

NOTE: This guide applies to all versions of Windows. Please read the theoretical chapters first, not just the practical ones, so that you have a good understanding of this topic.

What is Unicode and why does it matter?

First, let's talk about Unicode and what it is. Understanding it means that you know how Windows displays special characters like ῦ, Ᾰ, and many others, from different languages.

Unicode is a character encoding standard, developed by the Unicode Consortium, which defines a set of letters, numbers, and symbols that represent almost all of the written languages in the world. Its success in unifying character sets has led to widespread use in the creation of software.

Where does Unicode come in? When you talk about software being written in a language with a specific character set (e.g., Chinese), that is expected to run and be displayed correctly on a computer with an operating system which uses a different character set (e.g., Windows in English). The opposite situation applies just as well: software written in English, which uses Latin characters, expected to run and be displayed correctly on a Windows computer in Chinese. In such instances, depending on how the application was coded, not all the characters in the interface of the app may be displayed correctly.

Complications happen when you need to use software and operating systems that have "conflicting" character sets. For example, an app is in Chinese, Japanese, Arabic, Hebrew, Russian, while the operating system uses Latin characters, such as English, Spanish, German, Romanian, and so on.

When such conflicts occur, the display language used by the operating system is considered to be the Unicode language and the program being run (with a different character set), as non-Unicode. By default, non-Unicode programs are set in Windows to use the same language as the operating system. Since the program uses a completely different character set from the one used by the default non-Unicode program language, it is not displayed correctly. To fix the problem, you need to change the default language used by Windows for non-Unicode programs to match the one used by the application you want to run.

Below, you can see an example of such a conflict, and how some characters were displayed before changing the non-Unicode programs language in Windows, and after it was modified to the correct language.

The most common problem: movie subtitles do not correctly display some characters

The most common situation when the language for non-Unicode programs causes usability frustrations is when playing movies or other media files. For example, you have Windows in English, and you are playing a movie for which you need to play the subtitles in your local language, which includes some characters not found in the English language - those characters might not be displayed correctly.

You can also play music in your local language, and the name of a band or song contains characters not found in the English language. Chances are those characters do not get displayed correctly in the media player that you are using. Setting the language for non-Unicode programs to your local language fixes these problems.

How to set the language for non-Unicode programs in Windows

It does not matter what version of Windows you are using. You have to open the Control Panel. Then, go to "Clock, Language, and Region."

If you are using Windows 10 or Windows 8.1, go to Region. If you are using Windows 7, go to "Region and Language."

This opens the Region window or, if you are in Windows 7, the "Region and Language" window. Go to the Administrative tab. In the "Language for non-Unicode programs" section, you see the currently set language for these apps and programs. To change it, click or tap "Change system locale."

The Region Settings window is displayed. By default, you see the current language that is used for non-Unicode apps and files.

Click or tap the "Current system locale" drop-down list to view all the languages that you can choose from. Select the new language that you want to use and press OK.

You are informed that you need to restart your Windows PC or device so that the change gets applied. Close all your open apps and files, and click or tap Restart now.

Windows restarts and, when you log in again, the new language is applied to non-Unicode apps and files.

IMPORTANT: the change of the language used for non-Unicode programs gets applied to ALL non-Unicode apps and files. Therefore, if you need to run another non-Unicode app which uses a different character set, you need to change the non-Unicode program language again.

Conclusion

Changing the language used for non-Unicode programs is not that hard. Unfortunately, the theory is a bit complicated to explain and understand but hopefully we have done a good job at it. If you have any questions, do not hesitate to leave a comment below.