我很惊讶地发现std::wcout
不会在字符串中打印一个正确的单引号,并且实际上它已损坏。之后,没有任何其他信息打印到控制台上。
std::wcout << L"Parents’s Name";
请注意,所讨论的字符看起来像撇号,但实际上并非如此,它被称为右单引号,其unicode值为0x2019。
如果我改用cout
,它将在其位置打印错误的字符,但会打印其余的字符串。但是我正在处理unicode字符串,所以我想知道为什么wcout
不起作用。
如您所见,这并不是一个特殊的/控制字符,可以是字符串的一部分。我可以做些什么才能打印出来吗?
答案 0 :(得分:1)
假设操作系统为Windows,请将控制台模式设置为支持宽字符:
#include <iostream>
#include <io.h>
#include <fcntl.h>
int main(){
_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout << L"Parents’s Name";
}
输出:
Parents’s Name