Have you ever had problems with running applications written in more complex languages which use special character sets like Chines, Arabic, Russian or Hebrew? If you have, then you should read this article about Unicode and changing the language used for non-Unicode programs. If this sounds like gibberish to you, don’t worry - read on and you will understand what Unicode is, how it works and how to make Windows 7 correctly display programs which use non-Unicode character sets.
What is Unicode and Why Does It Matter?
Before going to your usual step by step tutorial, let’s talk about Unicode and what it is. Unicode is a character encoding standard, developed by the Unicode Consortium, that defines a set of letters, numbers, and symbols that represent almost all of the written languages in the world. Its success at unifying character sets has led to widespread use in the internalization and localization of computer 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 get displayed correctly on a computer with an operating system which uses a completely different character set (e.g. Windows 7 in English). The opposite example applies just as well: software written in English, which uses Latin characters, expect to run and get displayed correctly on a Windows 7 in Chinese. In such scenarios, depending on how the application was coded, it can happen that not all the characters in the interface of the application get displayed correctly, becoming a bother.
Complications generally happen when you need to combine software with operating systems that have “conflicting” character sets like Chinese, Japanese, Arabic, Hebrew, Russian, etc. versus languages which use Latin characters, such as English, Romanian, Spanish, German, etc.
When such conflicts occur, the display language used by the operating system is considered to be the Unicode language and, by default non-Unicode programs are set to use the same language. The software with a different character set is considered to be a non-Unicode program. Since it uses a completely different character set than the one used by the default non-Unicode program language, it is not displayed correctly. In order to fix the problem, you need to change the default language used by the operating system for non-Unicode programs to match the one used by the program you want to run.
Below you can see an example of such a conflict, and how certain characters were displayed before changing the non-Unicode programs language and after it was changed to the correct language.
The Most Common Usage Scenarios: Movie Subtitles & Music Playing
The most common scenario when the language for non-Unicode programs being set incorrectly causes usability frustrations is when playing media files. For example: you have Windows 7 in English and you are playing an English language 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 get displayed well. 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.
Setting the language for non-Unicode programs to your local language will always fix these problems.
Change the Language for non-Unicode Programs
Open the Control Panel and click the Clock, Language, and Region link.
In the Clock, Language, and Region panel, click on Region and Language.
This opens the Region and Language. There, go to the Administrative tab. In the Language for non-Unicode programs section, you can see the currently set language. To change it, first click on Change system locale.
This opens the Region and Language Settings window. Click on the Current system locale drop-down list and select the language you need to be used.
When done selecting the language, click OK.
You are now informed that you need to restart your computer, so that the change gets applied. Close all your open applications and documents and click on Restart now.
When you log back in, the new language is applied for non-Unicode programs.
IMPORTANT WARNING: the change of the language used for non-Unicode programs gets applied to ALL non-Unicode programs. Therefore, if you need to run another non-Unicode program which uses a completely different character set, you need to change the non-Unicode program language yet again.
Changing the language used for non-Unicode programs is not that hard. Unfortunately the theory is more complicated to explain and understand but hopefully we have done a good job at it. If you have any questions don’t hesitate to use the comments form below. Also, for more articles on languages, check the articles recommended below.