我正在开发一种多语言软件(第一次使用除英语之外的任何其他语言)。
我创建了读取多个本地化文件的代码,然后用户选择了他们的语言,并使用了本地化文件。
这一切都很好,花花公子,但当我尝试显示外语符号(如韩语)时,它没有显示正确的符号。
我需要做些什么特别的事情来将中文,韩文,日文等存储到字符串中吗?我的一个韩国本地化文件看起来像这样....
[Labels]
Username=사용자 이름
Password=암호
所以在我的代码中我有一个函数可以得到像这样的指定字符串......
const std::string& UsernameLabel = GetLocalizationString("Korean", "Labels", "Username");
const std::string& PasswordLabel = GetLocalizationString("Korean", "Labels", "Password");
答案 0 :(得分:5)
问题的根源是std::string
本身,因为它处理char
s(在大多数情况下等于1个字节)。一旦您计划开发多语言软件,您必须执行以下操作之一:
std::wstring
处理"广泛的字符" (通常在Windows上为2个字节)。容易做,涵盖大多数情况。更新:此外,您可能会发现此讨论很有用:std::wstring VS std::string
答案 1 :(得分:1)
广角应该适合你的情况,比如unicode,我来自国家,希望能帮助你。