FTE cannot display Thai characters under Windows XP English using default set of device fonts

May 5th, 2010

   Are you unlucky user of Windows XP English with clean install?

   If yes, then probably you cannot see Thai characters in Spark text components (e.g Spark Label) in the following demo:

Get Adobe Flash player

Code listing: http://gist.github.com/390993

    New Flex Spark Label to display text uses the new Flash Text Engine (FTE) introduced in Flash Player 10. And that’s true, FTE brought many very useful new features (text subscript, bidirectional text to name a few) that were previously impossible to achieve with older flash.text.TextField object, but I’ve learned recently that FTE can fail to display Thai characters under Windows XP clean install.

   Eric Y Muller explains the technical details at Adobe forums:, why FTE cannot use neither Tahoma nor Microsoft Sans Serif standard Windows XP fonts as device fallback to display Thai characters.

   The only workaround for this issue for the frustrated user would be to insert original CD with Windows XP install and install Thai language support using “Regional and Language Options” control panel. But this would impossible to achieve for the anonymous employee that works for trans-global corporation without admin access account %-)

   As for the developer of the Flash application we can always embed font into Flash app that contains Thai characters, but this will impact the overall bytesize of the resulting SWF file.

ps
   In 2010, Windows XP remains highly relevant OS. Various stat counters show that 52% 64% computer users use Windows XP. Thus it is very important for any Flash application to play nice under this OS without an hassle.

Display special characters in Flash – use URL Encoding

August 15th, 2005

    Recently I had to load the text from external source in Flash and from the design of the application I had to rely on LoadVars command.

    No wonder, that quite soon I came up with a problem that Flash does not display special characters like “+”, “%” or “&” if those characters are loaded into Flash via LoadVars. After a bit of research, I found out that LoadVars object method “load” operates with URL encoded strings to allow to include those special characters into string of text.

    A good reference table with URL Encoding table for special characters can be found here at
Flash TechNote URL Encoding: Reading special characters from a text file.

The more extensive list of Unicode escape sequence codes in PDF format can be obtained from Unicode.org.

Therefore in Flash,

  • Symbol “%” becomes %25 after URL encoded
  • Symbol “&” becomes %26 after URL encoded
  • Symbol “+” becomes %2B after URL encoded
  • and so on…

    In ActionScript code:

    this.createTextField(“result_ta”,1, 0,0,150,20);
    result_ta.embedFonts =false;

    var myData_lv = new LoadVars();
    myData_lv.load (“myText.txt”);
    myData_lv.onLoad = function()
    {
    result_ta.text = myData_lv.sp1_title_1;
    }

    Content of “myText.txt”:

    &sp1_title_1=Andrew %26 Stas have gained a 5%25 percentage raise %2b good vacation bonus

        As a concluding note, an extensive paragraph on how to work with special characters in Flash 6 and higher is written at PDF file:“Using ActionScript in Flash” (Page 118 “Working with text”)