When Microsoft says Unicode, assume they mean UTF-16LE if they don't say otherwise

by Michael S. Kaplan, published on 2007/08/04 14:10 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/08/04/4227843.aspx

Dmitry Moraru's query in the microsoft.public.win32.programmer.international newsgroup was:

Hi All,

I am trying to build international message tables from the Unicode file using Message Compiler from Visa SDK (v 1.12.5489). When I use

     mc -u -U MyMsg.mc

it always complains

     "mc : error : -u switch cannot be used with non-Unicodemessage file!"

Of course, I saved the source file in all possible unicodes (utf-7/8, with/without signature, big/little endian, etc.) available in Visual Studio without any success.

Which exactly Unicode version should I use in this case?


Regular readers here may know the answer (given to Dmitry by MVP Mihai at the time and in the title of this post):

UTF-16 Little Endian, with BOM, should do.

This is the most sensible default on Windows, but even if you disagree about the sensibility of it, you pretty much have to agree that it is what is being used most of the time on Windows.... and the times when it is not are pretty clearly pointed out. Better to just assume things are that way.


This post brought to you by (U+0d43, a.k.a. MALAYALAM VOWEL SIGN VOCALIC R)

Alan J. McFarlane on 5 Aug 2007 5:39 PM:

... and what does it mean if a third-party document says "Unicode"?

"Nothing useful", I guess...  I have a particular standards document that says that and I always wonder what they mean -- it is quite old though (1996)...


go to newer or older post, or back to index or month or day