Вероятно, наиболее важной частью создания приложения, поддерживающего Unicode, является отслеживание кодировки ваших строк и обеспечение того, чтобы ваши публичные интерфейсы были хорошо определены и просты в использовании с кодировками, которые вы хотите использовать.
Переключение на более широкий символ (в c ++ wchar_t
) не обязательно является правильным решением. На самом деле, я бы сказал, что обычно это не самое простое решение. Некоторые приложения могут сойти с рук, указав, что все строки и интерфейсы используют UTF-8 и вообще не нуждаются в изменении. std::string
вполне может использоваться для строк в кодировке UTF-8.
Однако, если вам нужно интерпретировать символы в строке или интерфейсе с интерфейсами, отличными от UTF-8, вам придется проделать больше работы, но, не зная больше о вашем приложении, невозможно порекомендовать единственный лучший подход.