C++ C++;:有unicode控制台标题。。?
当我尝试使用C++ C++;:有unicode控制台标题。。?,c++,unicode,console,title,C++,Unicode,Console,Title,当我尝试使用SetConsoleTitle()将控制台的标题设置为包含unicode字符的字符串时,标题只显示一些垃圾字符。 我还尝试了SetConsoleTitleW()函数,但这会导致以下错误: error: cannot convert 'const char*' to 'const WCHAR*' for argument '1' to 'BOOL SetConsoleTitleW(const WCHAR*)' 有什么建议吗?您必须使用宽字符串文字,即: SetConsoleTitle
SetConsoleTitle()
将控制台的标题设置为包含unicode字符的字符串时,标题只显示一些垃圾字符。我还尝试了SetConsoleTitleW()函数,但这会导致以下错误:
error: cannot convert 'const char*' to 'const WCHAR*' for argument '1' to 'BOOL SetConsoleTitleW(const WCHAR*)'
有什么建议吗?
您必须使用宽字符串文字,即:
SetConsoleTitleW(L"DиD");
引号前的L
表示这是一个wchar\u t*
字符串
另外,为了完整性,我必须说,在C++11中,定义了新的字符串文字前缀:
const char a[] = u8"for a UTF-8 string.";
const char_16_t b[] = u"for a UTF-16 string.";
const char_32_t c[] = U"for a UTF-32 string.";
与往常一样,我们有更详细的说明。看起来您正试图将UTF-8编码的数据发送到需要UTF-16编码数据的函数
在传递给函数之前,您需要将字符串文字转换为UTF-16(即
WCHAR*
),或者将文字创建为WCHAR*
文字(我相信这是使用语法L“DцD”
完成的)。非常感谢。回答得很好。(我会在2分钟内接受这个答案,时间限制过后。)