在Windows上使用UNICODE文本的奇怪行为

时间:2013-10-29 13:52:52

标签: visual-studio winapi unicode wstring

我的win32代码中有一些UNICODE文本。 我宣布它是这样的......

std::wstring a = Träna; //swedish for practice

我使用类似......

之类的东西将该值复制到变量中
std::wstring b = a;

调试时我看不出我应该在b中得到什么。 我应该在Träna中获得 b ,但我得到的是 Träna 这仅在Windows上观察到,程序在OS X上运行良好。

我确定这是一个新手的错误,我在这里失踪了什么?

1 个答案:

答案 0 :(得分:1)

正如@SigTerm和@jukka所述,问题在于UTF-8编码。

将cpp文件保存在< Unicode UTF-8 with signature >问题解决了。 该文件之前保存在< Unicode UTF-8无签名>中。 这不是前缀L的问题,我已经定义了我的变量。