Log in

View Full Version : "Windows Mobile 2003" and the fight with thai characters


endlessloop
05-11-2006, 12:38 AM
Well... this is the mess:

i wrote some code in the body of a small and simple html template:

#3585

(that's all the body)

In windows XP, 2000, etc, it shows a Thai character, but in windows mobile 2003, in "Pocket Internet Explorer", it shows a square.

I downloaded the sildoulosunicodeIPA fonts but i got nothing doing that.

What must i download (EXACT LINK) for my pocket internet explorer, 4 seeing thai characters?

Note: even setting the <meta content-type CONTENT="text/html; charset=tis-620"> (or utf-8 instead of tis-620), didn't change anything. It seems thai i need another component, but i don't know what it is.

OS: Windows Mobile 2003
Pocket PC: Toshiba e400
Explorer: Pocket Internet Explorer
Fonts i tried: the basic system fonts, and SILDoulosUnicodeIPA (as i saw in the common windows font viewer, that font contains thai characters).

(please, i need an EXACT link... and not things like "search in google" or "look in the msdn" bc i don't know how's MSDN so much, and i didn't find anything in google).

Thanks

gwinter
05-13-2006, 10:24 AM
This is one of the reasons I'm tempted to say that PPC is worthless compared to desktop Windows system. :evil: Out-of-the-box support for multi-lingual (or more appropriately multi-script) usage is so bad it's not even funny.

Here are some points that you have to take into account to be able to display that script.

1. Save the HTML with UTF-8 encoding as far as possible. But, in this case, you're specifying & #3538;, so normal ASCII encoding should work as well.

2. The display encoding should then be UTF-8. You'll need the Thai codepage only when you entered the script directly (i.e. not using & #3538; method) and saving the file with ASCII encoding.

3. I don't think the default fonts on the system contains Thai script. But to enable it involves more than just downloading the appropriate font.
a) The font have to be put in \Windows folder
b) Additional entries have to be created in the registry in HKLM\Software\Microsoft\FontLink\SystemLink. This is known as font-linking. When the default font file does not support a codepoint specified, the system try to obtain it from the alternate font file specified. See for example this page on MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcefonts/html/coorifontlinkingregistrykeys.asp). There are more information about font linking on MSDN.

4. Now comes the bad news.
a) Thai codepage is not supported. If you're just using UTF-8, you're fine. But if you really need codepage support, you'll need to find a wince.nls file that contains the support.

b) After going to all this trouble, you'll be very disappointed to find that Thai script still cannot be supported properly at this stage. This is because Thai script is categorize as complex script, meaning the output need to be processed (for example individual characters need to be joined properly) before it is displayed. Arabic script is another complex script example. (Note, however that Chinese or Japanese scripts are not categorized as complex script; such processing are not needed on the output strings). The engine responsible for the processing is called Uniscribe. While it is available on WinCE, it is not available on any SKUs of Windows Mobile.
I think Thai users use 3rd-party programs, but I don't know much about them.


If it's feasible, I'd suggest using a laptop instead and forget this mess. :(