Hello Everyone. Recently I received this question from someone (you can send me mail too at drintl@microsoft.com). I thought I’d share my response here because, well, I guess that’s what bloggers do from time to time.

Hi Dr. International,

I need the following information on Windows XP and Windows 2003 servers.

a) Which version of Unicode is supported by Windows XP and Windows 2003 Server?
b) If it supports Unicode 3.1 and above does it support all the surrogate characters defined in Unicode 3.1 and above?


Hello,

I don’t mean to sound like a politician, but in order to answer your question, we need to define what you mean by “support”.

Currently Windows XP and Server 2003 support the Unicode encoding schema including surrogates. This means Windows XP and Server 2003 can process Unicode 3.0 supported characters correctly.  It also means that it can process Unicode 4.0.  What I mean by process is that Windows XP and Server 2003 both internally handle the encoding without changing or losing any of the text.

Processing characters and displaying characters are two different things.  So, if your question is, “Can Windows XP or Server 2003 display all of the characters supported in Unicode 3.0 or 4.0?” then the answer is yes, if a font exists for the character.  However, Windows XP and Server 2003 do not ship with fonts that contain glyphs for all of the characters in Unicode, but if someone develops a font to display those characters, the functionality to use that font is already built into Windows XP and Server 2003.
 
One other area when it comes to support is the existence of a shaping engine.  In some scripts like Arabic and Thai, the character's shape changes depending on what characters either immediately precede or follow it.  Thus you need a shaping engine to check the context of where the characters is used to make sure the right shape displays.  There are some scripts that are part of Unicode that even if a font was developed, Windows XP does not have a shaping engine to figure out which shape to display and would only show the nominal shape.

So I come back to your original question.  What version of Unicode does Windows XP or Server 2003 support Unicode?  The answer is that it depends on what you mean by support.  Will that part ever change?  Yes, we are investigating what it takes to add new fonts and shaping engines to display scripts not currently supported.  You may ask “Which scripts, and when will they be supported?” The answer is that we are looking at adding new scripts, but currently we have nothing definite we can announce.