C++ C+中的Unicode+;在Mac终端中不显示
C++ C+中的Unicode+;在Mac终端中不显示,c++,variables,internationalization,chinese-locale,C++,Variables,Internationalization,Chinese Locale,终端>配置文件>高级>文本编码设置为Unicode(UTF-8) Terminal>Profiles>Advanced>Set locale environment variables on startup处于选中状态 Terminal>Profiles>Advanced>Unicode东亚歧义字符是宽的被选中(我也尝试过不选中它——两者给出相同的结果) 终端配置文件中选择的字体与汉字兼容——我已经检查过了 我通过终端本身检查了locale,它给出了以下信息: LANG="en_US.UTF-8
终端>配置文件>高级>文本编码
设置为Unicode(UTF-8)
Terminal>Profiles>Advanced>Set locale environment variables on startup
处于选中状态
Terminal>Profiles>Advanced>Unicode东亚歧义字符是宽的
被选中(我也尝试过不选中它——两者给出相同的结果)
终端配置文件中选择的字体与汉字兼容——我已经检查过了
我通过终端本身检查了locale
,它给出了以下信息:
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
--我不确定这是否是问题所在,因为它说的是en_US
,但也说的是UTF8
,这是我输入的字符的编码
为了测试所有这些,我使用了以下代码:
char dao [4] = "\u9053";
std::wcout << "Character: " << dao << std::endl;
wchar_t wdao[] = L"道";
std::wcout << "Character 2: " << wdao << std::endl;
也就是说,我无法让它与
wchar\u t
而不是char[]
一起工作。我想这已经足够好了,因为它可以正常工作,但是,如果有人知道使用wchar\u t
有什么问题,我希望知道这一点,以供将来参考。没有没有谢谢,但我尝试了使用wcout
的宽字符,但也没有效果。出于某种原因,我无法将一个汉字包含在一个宽字符中,然后通过wcout
打印出来——这是我的初衷,因为我希望能够将汉字作为单数而不是字符数组来处理。如果你对原因有任何想法,请告诉我。使用汉字有点复杂,很难判断到底出了什么问题。谢谢,但我用wcout
尝试了宽字符,结果也不起作用。出于某种原因,我无法将一个汉字包含在一个宽字符中,然后通过wcout
打印出来——这是我的初衷,因为我希望能够将汉字作为单数而不是字符数组来处理。如果你对原因有任何想法,请告诉我。使用汉字有点复杂,很难判断到底出了什么问题。
char dao [4] = "道";
std::cout << "Character: " << dao << std::endl;
char dao2 [4] = "\u9053";
std::cout << "Character: " << dao2 << std::endl;
char dao [4] = "\u9053";