Display Japanese on Windows Mobile

Supporting Asian languages is quite a challenge for app and OS developers. By chance, well I should say by some recent enhancements, Windows Mobile carries strings natively with 2 bytes characters. Unfortunately the non Asian versions of the OS do not display characters outside the ASCII 256 bytes range characters, but only show white squares.

wince_jap_opera1.jpg

Many web sites offer some solutions, some do work, some do not. Find bellow my recipe, working fine on a HTC Touch 3G, Windows Mobile 6.1. It is a highly empirical process, many trials and disappointments. Anyway all this has been tested successfully after a hard reset on my device. Let me know if it works or not for you.

But before you start playing with the registry, fonts, etc, consider first CE-Star, it is a great piece of software, to support both display and entry for Japanese, Korean and Chinese. Can be downloaded at http://www.mobem.com/products/cestarwm5.php and the price is fairly reasonable.

That said, let's put on the apron. You will need:

  • Meiryo.ttc (Japanese font from Windows Vista, size: 7.45MB). I have tested with MS Mincho without success
  • A registry editor, which could be running on your device. I prefer using tools such as CeRegEditor (http://ceregeditor.mdsoft.pl/) which allows registry edition from your desktop
  • 10mns of cooking time, 10 days if things get bad!
  • Good news: wince.nls from an Asian OS is not required, no need to replace it!

Two steps only: first put meiryo.ttc inside \windows directory. Do NOT put it for example into \windows\fonts, won't work for me. Then modify or add the following entries in your registry:

[HKEY_LOCAL_MACHINE\Software\Microsoft\FontLink\SystemLink]

"Arial"="\windows\meiryo.tcc,Meiryo"
"Courier New"="\windows\meiryo.tcc,Meiryo"
"Symbol"="\windows\meiryo.tcc,Meiryo"
"Tahoma"="\windows\meiryo.tcc,Meiryo"
"Times New Roman"="\windows\meiryo.tcc,Meiryo"

[HKEY_LOCAL_MACHINE\Software\Microsoft\FontLink\SystemLink]

"Tahoma"="005c,00a5,007e,0391-03c9,2026,2116,221a,25a0-25ff"
"Courier New"="005c"

[HKEY_LOCAL_MACHINE\nls]

"LegacyLocaleMode"=dword:00000001
"DefaultLCID"=dword:00000411
"DefaultACP"=dword:000003a4
"DefaultOCP"=dword:000003a4
"SystemLCID"=dword:00000411

[HKEY_LOCAL_MACHINE\Software\Microsoft\International]

"ACP"=dword:000003a4
"LCID"=dword:00000411

[HKEY_LOCAL_MACHINE\System\GDI]

"DisableFarEastWordBreak"=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International]

"Default_CodePage"=dword:c6f4

 

If you plan to use Korean or Chinese, please get the language identifier, code page and font to use from Microsoft web pages bellow. x411 and x3a4 are respectively language identifier and code page for Japanese, in hexadecimal.

Has been tested successfully:

  • eMail display (text and HTML)
  • Opera 9.5 (pages encoded in UTF-8, Shift JIS, etc)
  • Internet Explorer (pages encoded in UTF-8 only)
wince_jap_mail1.jpg  wince_jap_mail2.jpg

 

Finally few links to help you find your way in this jungle:

Please share your feedback if this worked for you or where it did fail.