FAQ: Chinese Characters Will Not Display
in Some Applications or Web Pages on
an English Language Windows System
The Chinese characters in one of my programs and on some web pages are showing up as "???", boxes and other garbage characters. Do I need a Language Pack? Help!!!
Chinese should display automatically in recent versions of Windows, or after you have enabled East Asian languages in Windows XP. No Language Packs or MUI bundles are necessary for this. If you see Chinese on some web pages but not all, or if Chinese in some but not all applications looks like the dialog box above, don't worry! You do not need to upgrade Windows.
I have received this question regarding Chinese IM chat clients (like Sina UC, shown above), Chinese MP3 filenames, software from Taiwan and the mainland, even US versions of QuickBooks that used to accept Chinese characters in text fields until the user upgraded or moved to a new system. I also get the same question from people who see Chinese on some but not all Chinese websites. Most problems like these can be fixed with the solutions I describe below.
If Chinese won't display on web pages:
If you're using Windows XP, make sure you have enabled East Asian languages. In later versions of Windows they are already enabled. If a Chinese website is still not correctly displaying Chinese characters, you can usually fix this by manually adjusting your browser's character encoding setting.
You shouldn't need to do this for Baidu.com; the screen shot above is just an example. UTF-8 is a form of the universal Unicode encoding, and my browser had already selected this automatically based on Baidu's HTML header. You don't really need to know about the details of this stuff just to surf the Web, but if you are curious I've written an article about fonts and character sets in Chinese web pages, and for even more bedtime reading there's my summary of Chinese encoding standards.
In Chrome, go to the menu, select More tools > Encoding, and try Chinese encodings specific to the region where the site is based.
In Firefox, encoding choices are now on the toolbar menu (the three-line "hamburger" icon on the right), under Text Encoding. In previous versions it was on the classic menu at the upper left, under View or Web Developer > Character Encoding.
In Internet Explorer 6, it was under View > Encoding. In IE 9, 10 and 11 on Windows 7 and earlier, the only way to change this seems to be via the tools (gear) menu > Internet Options > General tab > "Language" button, which is really inconvenient and not exactly what we want but at least it's there. In the Windows 8 tablet version of IE, the gear menu takes you to Settings > General > Display for an even more dumbed-down and less useful list, and I can't remember what happened in Windows 8 desktop. In Windows 10 the IE "Language" button only sends you to the system control panel to add more languages - not helpful - and I can't find language settings anywhere in the initial release of the Microsoft Edge browser. «Sigh.» But at least when you're on Microsoft websites the account settings (gear) icon at the upper right of the web page includes language localization options.
In Safari, the last time I looked, at the top right I clicked the little page icon and in the menu there was "Text Encoding".
Most other browsers offer the same options as well. If you need help finding this, contact me anytime.
If Chinese won't display in applications:
If you're using Windows XP, make sure you have enabled East Asian languages. In later versions of Windows they are already enagbled. Then, if a Chinese application on your PC is still not showing hanzi correctly, you have two choices:
- Install Microsoft AppLocale or Locale Emulator
- Change the entire system to a new locale
- The following suggestions are primarily for applications created in and intended for a Chinese locale, i.e. 100% Chinese language systems.
- QuickBooks won't be helped by AppLocale. Skip to Option 2: Change Locale.
- Outlook can behave strangely with these, see my article on Outlook & locales.
- Chinese applications developed for Windows XP or earlier may require you to make changes to a couple of Registry key values yourself. See "If neither option works" at the end of this article.
Option 1: AppLocale or Locale Emulator
Microsoft AppLocale is a free utility for Windows 7, Vista, and XP. It runs a simple "wizard" to help you run non-Unicode applications or mix locales for other reasons, without changing your entire system's locale to another language. See my note below about possible problems installing as an Administrator. I have had trouble running this in Windows 8 and 10.
Locale Emulator is a free utility for Windows 10, 8, and 7 SP1. I will update this page with more information on Locale Emulator, but must at least post this link for you now, because I have had many reports that I am not alone in having difficulty using Microsoft AppLocale in Windows 8 and 10.
You can use AppLocale to run an application once, or you can have it create a shortcut to run the app with these settings every time. You may need to run AppLocale as an Administrator the first time you use it on an application, but after a shortcut is created any user can run it. By default it drops the shortcut into AppLocale's folder in the Start menu. From there you can move the shortcut wherever you want. AppLocale will nag you every time you start it, telling you that this is a "temporary solution" and that you can change your entire locale instead. Duh. Just ignore that.
In this example I used the AppLocale wizard to install Sina UC in Windows 7. First I selected the Sina UC installer:
AppLocale automatically detected Simplified Chinese:
Then I had it launch the installer. Compare this to the first screen shot on this page:
After installing, the next step is to run the AppLocale wizard on the Sina UC application itself, and create a shortcut that always runs the app using the Simplified Chinese locale settings. Every time you launch it, AppLocale will pop up a little message saying that Microsoft considers this a "temporary solution", but yeah right it's been "temporary" since at least 2003 and this problem is not going away anytime soon so just dismiss that message and keep using AppLocale.
Sound like a plan? Then go ahead and download AppLocale from Microsoft!
The installer needs to be run with Administrator priviledges, which many of you may already have and don't even know it. But Windows may give you an error message like this:
There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor.
You can't right-click on the installer to get a "Run as Administrator" option, so if you get that message your best option is to follow these instructions on installing AppLocale from the command line.
Option 2: Change system locale
It's convenient when a locale emulator works, but in many cases the software will not cooperate and you will have to change the locale for the entire system. Some software is so tied to China that you will also have to change the location. Those are two different settings.
These changes are not permanent, you can reverse them. If other applications begin behaving strangely you can switch this back to the original ssetting with no permanent damage...with one small exception: some programs select their display language the first time they run and will not change again unless you uninstall and reinstall them with the system locale set to the language you want.
Go to the Windows XP/Vista/7 Start menu, or the Windows 8 desktop Charms menu, and click on "Control Panel".
In Windows XP Classic view double-click on "Regional and Language Options". In XP Category view click on "Date, Time, Language and Regional Options".
In the Windows Vista, 7, or 8 control panel, click on "Clocks, Language and Region".
Notes on Windows 8:
- For the Windows 8 desktop interface, follow the instructions below.
- In the Windows 8 tablet interface, this is under Settings > "Change PC settings" > "Time and language" > Region and language", and then "Country or region" (not display language). I apologize for not yet posting screen shots. The rest of this section applies to the desktop only.
Click "Regional and Language Options" (XP, Vista), "Region and Language" (Win 7), or "Region" (Win 8).
Click the "Administrative" tab.
Then, under "Language for non-Unicode Programs":
In Windows XP you'll see a pull-down menu of languages right there. (Do not mess around with the "Code page conversion tables", just the menu in the area above.)
In Windows Vista and Windows 7 you'll have to first click the "Change system locale..." button before finding that menu.
<--- This is the screen shot for Vista. In Windows 7 the same button is in the bottom half of this same tab in this same control panel, just to make life interesting for me.
In the drop-down menu, change the system locale to Chinese (Simplified, PRC), Chinese (Traditional, Taiwan) or whatever language you need. Then click "OK" as needed to get back out of the control panel, and restart your system.
After restarting your system, try running the Chinese application. If some or all of the Chinese is still not displaying correctly, the next setting to experiement with is in the "Location" tab of the same control panel. Don't do this unless you must, because many of your other applications and services may start showing you China defaults in places you may not expect.
As I said, these changes are not permanent, so if you encounter unexpected settings or annoying instability in other applications - like Chinese characters showing up where they don't belong - you can always switch back.
I recommend changing these back to your home locale and location each time you install new software unless you don't mind if it installs entirely in Chinese. I was forced to have some fun with all Chinese menus in what I had thought was a US-only version of a Nero disc buring app (it was good practice for me, I guess) but eventually I uninstalled it and then reinstalled with the system locale set back to English.
If neither option works:
Did both of the above ideas fail to fix your problem in Windows Vista, 7, 8, or 10? It's possible that your application was developed for Windows XP or earlier versions, and still looks for two Registry key values that no longer change automatically when you switch locales. If so, you will have to edit your Registry to change or add a key required by your app, as follows:
Find this key:
You may find something like this:
For simplified/mainland apps, this should be:
For traditional/Taiwan apps, this should be:
Many thanks to Jody Leung for figuring this one out!
Questions? Suggestions? Contact me anytime.
« page top
« « Back to FAQ index