[notification type=”alert-warning” close=”false” ]This fix no longer works for recent versions of Chrome. At this point no solution is known.[/notification]
If you’re a Chrome user on Windows, you’ve likely noticed that support for international characters and unicode glyphs is pretty bad. If you’ve ever visited a foreign page, or one that uses the full UTF8 character set, you’ve probably seen something like this:
These boxes are the “missing glyph” symbol, and represent a character that Chrome cannot render. Firefox, on the other hand, displays them quite well.
As it turns out, the issue is not really Chrome’s fault. When Chrome encounters a glyph that doesn’t exist in the font used to render a page, it attempts to find that glyph in a list of common fonts that the user might have available. It’s only after exhausting that list that the missing glyph symbol is shown.
You might ask, why are there so many missing glyphs in Chrome on Windows, and why doesn’t Firefox have the same issue? The answer to the first question is that Windows doesn’t, by default, include any of these common fonts that have good unicode support. In fact, Windows includes NO font with good unicode support, out of box. The second part is actually a pretty smart hack from the Mozilla team. Firefox contains an internal glyph set to fall back on, if the system cannot display the character.
So, now that we understand the issue, how do we fix it? Easy, install one of the font sets that Chrome knows to check for unicode glyphs, namely Code2000.
Code2000, Code2001, and Code2002 are three true-type fonts that were designed by James Kass in 2008. They are known as a Pan-Unicode font set, designed to contain as many glyphs as possible. They were available for free, from Kass’ website, until it went down in 2011.
I have hosted a mirror with my fbformat project, to enable unicode formatting in Chrome. Simply download the ZIP, extract the files, and copy them into your fonts directory in control panel. After a quick restart, Chrome will have full unicode support.
To test your new support, try out fbformat, and make some pretty formatted facebook statuses.
any idea which one? I’ve never seen that before with adsense…
Bob Bobson says:
> The answer to the first question is that Windows doesn’t, by default, include any of these common fonts that have good unicode support. In fact, Windows includes NO font with good unicode support, out of box.
Sure it does. In XP, “Arial MS Unicode” supported a huge chunk of the code-points. In 7, “Segue UI” supports even more.
> As it turns out, the issue is not really Chrome’s fault.
Actually, you are incorrect. It is indeed Chrome’s fault. Chrome not only screws up its own handling of Unicode, but ALL OF WINDOWS and EVERY PROGRAM.
For some reason, Chrome has a serious defect whereby if after booting Windows, the first time you encounter a Unicode character is in Chrome, then it messes something up so badly, that EVERY Unicode character you see in all of Windows (e.g., filenames with Unicode characters in Explorer), as well as any programs don’t have their own built-in Unicode handling routines and use Windows will all display boxes instead of the correct characters.
If the first time that you encounter a Unicode character after booting is in ANY other program, then Windows, Chrome, and every program works correctly. That is why some people have advised that until the Chrome devs get their act together and fix their huge mistake, to keep a file with a Unicode character in its filename somewhere like on the desktop so that every time you boot, Windows will load the Unicode routines before Chrome gets a chance to (mess it up).
See this (still unresolved as of version 28) bug-report for the evidence and gory details:
Arial MS unicode actually supported a very minimal set of unicode characters, and looking through Segue UI’s glyphs, it does not seem to contain ANY of the alternate typeface sets, such as MATH BOLD.
I can’t speak to the issues listed on the google code page, but I certainly haven’t seen that symptom.
Ada 乂 says:
I’d been trying to solve this problem for ages. Thanks my friend 乂
Neil Ren says:
Unicode support IS buggy on chrome, for which reason I have switched to Firefox as my fall-back solution for sites that do not render well in Opera 12 which I kept from upgrading to the chrome-based versions 15 and 16. I just don’t understand why Chrome developers do not spend a little time resolving these issues.
If you need to use Chrome which lacks support for font technologies like Graphite that are well supported in Firefox, you are advised to use fonts spanning across a large Unicode charset or fonts that links to other fonts for unicode code points it does not support itself. This can be achieved by using Segoe UI or internationalzed fonts that contain Latin glyphs from Segoe UI (Microsoft YaHei and Microsoft Jhenghei, for Chinese scripts as an example). Font linking is a Windows technology that partly adresses the issue of wide unicode support.
Daniel Ortiz says:
download a helvetica font a while back and it totally messed with chrome. decided to deal with it and had a hard time reading stuff for a while. finally got fed up did some research for about 2 hours and ended up here. fixed everything! thanks!
this didn’t work for me! any other things to try???
Unfortunately, it looks like google has changed their font-handling since I wrote this post, and it now works sporadically at best. As of now, I have no better solution.
It doesn’t work. I just tried it.
I am using Chrome Version 44.0.2403.157 which is the latest update. It shows all characters on a certain site as the glyphs.
However, when I use my other computer and use a slightly older version of Chrome to open the same site, it displays fine. Thank goodness I did not update that Chrome yet.
Hi, I have followed what is suggested here and installed the fonts, but it doesn’t work. Whenever I try to copy and paste a text in a language other than English, Chrome causes my computer to stall. Error message: NJDBCS error: can’t open file. Unicode SC>TC Table not loaded.
I installed all three fonts and rebooted but nothing seems to have changed. Chrome is still hopelessly broken when it comes to properly displaying characters.
Seems like nothing I try to fix in Chrome will actually work lately. Starting to feel like it’s time to move on to a new browser. The devs clearly don’t care about their product anymore, with all the issues that continue to go unfixed with every new iteration.
Unfortunately, This fix is no longer Functional with recent versions of Chrome. The Chrome dev team has been aware of this issue for years, but has not solved the problem. At this point, my best suggestion is using Firefox or another browser with better Unicode support.
I really appreciate the time you put into trying to find a solution! I’ll try IE and Firefox. I’ve found that unicode is supported on the Chrome browser in my tablet, but not my phone or desktop.
Cassie Griffin says:
Chrome is a good web browser which has provided a good solution of Unicode. I had faced error 0x8024200b which I get a good idea from your post.