如果源代码是用win32编码的UTF-8,如何显示UTF-16 const字符串?

问题描述 投票:0回答:1

我的程序需要显示一些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);
}

Compiled with UTF-16LE source file

Compiled with UTF-8 source file

c winapi mingw encode
1个回答
0
投票

经过一些测试,如果文件被编码为没有签名(BOM)的UTF-8,则Visual Studio无法正确编码字符串。将编码方案更改为带签名的UTF-8后,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.