>>34
You're assuming that if you have to use UTF-16 to support asian character sets that you also have to use UTF-16 for everything else. I did not say that.
Typically, you either have some preprocessor definitions set up to allow you to conditionally compile in what text encoding to use, or you can support multiple code-paths allowing you to dynamically switch between UTF-8 and UTF-16 for text assets. This is generally done with interfaces--polymorphic classes and virtual methods.
And just because the game text is using
u16string doesn't mean you can't be using
u8string for internal developer strings, string based identifiers, etc.
Text assets are then run through a preprocessor to convert it to the target encoding when building the gold master. It's all automated.