我的程序需要显示一些unicode字符串。如果我使用UTF-16LE保存源代码,则一切正常。但是,我无法使用mingw在Linux中进行交叉编译。如果我使用UTF-8保存源代码,则可以毫无问题地编译源代码。但是所有const unicode字符串均未正确显示,因为它们被编码为UTF-8。将源代码保存为UTF-8编码后,如何正确显示unicode字符串?
示例代码:
#include <Windows.h>
int main(int argc, const char *argv[])
{
MessageBoxW(NULL, L"你好", L"你好", MB_OK);
}
经过一些测试,如果文件被编码为没有签名(BOM)的UTF-8,则Visual Studio无法正确编码字符串。将编码方案更改为带签名的UTF-8后,一切正常。