C++:拥有 Unicode 控制台标题
C++: Having unicode console title..?
当我尝试将控制台的标题设置为包含 unicode 字符的字符串时,使用 SetConsoleTitle()
,标题只显示一些垃圾字符。
我也尝试过 SetConsoleTitleW() 函数,但这给了我以下错误:
error: cannot convert 'const char*' to 'const WCHAR*' for argument '1' to 'BOOL SetConsoleTitleW(const WCHAR*)'
有什么建议吗?
您必须使用宽字符串文字,即:
SetConsoleTitleW(L"DиD");
引号前的L
表示这是一个wchar_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"
完成的)。
相关文章:
- C++:将控制台输出存储在宏中更好吗
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- C++控制台应用程序阻止退出
- 如何修复此iFile以将.txt输出到控制台
- 为什么控制台要求输入,即使代码中没有输入
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 对于C++,方括号中的标题必须总是在引号中的标题之上吗
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- 控制台输出在 Qt5 中未正确显示
- C++出现控制台错误.我无法识别源代码的问题
- 为什么我不应该把所有东西都放在标题中?
- C++程序不会从 Windows 控制台运行
- 有人可以向我解释为什么控制台输出 0 吗?
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 控制台标题 C++ , Linux.
- C++:拥有 Unicode 控制台标题
- 从字符串C++创建控制台标题
- 使控制台标题栏显示变量的值