
Saving source file in UTF-8 with BOM doesn't make MSVC use UTF-8 as char encoding. It's just because ASCII is compatible with UTF-8 encoding. It's still a Multibyte Character Set. I use Windows with Japanese locale. In my environment, string literal with no encoding prefix become Shift-JIS.
So this library takes whatever encoding the compiler use for char and use it as unique identifier for a corresponding translated text.
If you really want to use UTF-8, then you have to use C++0x's u8 encoding prefix. Not many compiler support it yet though.
It actually does. Take a look on libs/locale/examples/wboundary.cpp. Add UTF-8 BOM to it, compile it with MSVC it works perfectly. There is no problems with that. I'm working usually in Hebrew locale so it does not "work" for me either. However Adding BOM solves problems.
-- Ryou Ezoe
On the same note I'd like to address you to this table http://cppcms.sourceforge.net/boost_locale/html/appendix.html#tested_compile... You'll see that MSVC 2008 and 2010 is fully supported with all icu, winapi and std backends. I've got reports that MSVC 2005 works fully as well. Artyom