c++ - 在 C++ 中打印汉字

标签 c++ utf

我一直在尝试用 C++ 打印汉字。我已经在 Internet 上搜索过,有人说你必须使用 wcout,其他人建议使用其他方法。我也偶然发现了 this post ,有人使用一段代码:

#include <iostream>
int main()
{
char x[] = "中";
char y[] = u8"中";
wchar_t z = L'中';
char16_t b = u'\u4e2d';
char32_t a = U'\U00004e2d';

std::cout << x << '\n';
std::cout << y << '\n';
std::wcout << z << '\n';
std::cout << a << '\n';
std::cout << b << '\n';    
}

在显示 C++ 代码输出的 Internet 站点上,打印:

中
中
-
20013
20013

然而,对我来说它只是打印

õ©¡
õ©¡
20013
20013

我正在使用 JetBrains CLion,编码设置为 UTF-8。但是,我也尝试过 Visual Studio 和 QT Creator,我得到了相同的结果。我希望有人能帮助我。

最佳答案

如果您使用的是 OSX 终端,也许您可​​以检查编码。

终端 -> 首选项 -> 编码选项卡

然后检查是否勾选了繁体中文或者Unicode(UTF-8)

对于 Windows,您可以试试这个,更改为 UTF-8 编码。

转到“开始”,然后运行“regedit”-> 导航到 [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun] -> 将值修改为“chcp 65001

希望这对您有所帮助。

关于c++ - 在 C++ 中打印汉字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46183350/

相关文章:

c++ - 方法应该将 R 值引用作为输入有任何正当理由吗?

c++ - 在编译时测试字节序 : is this constexpr function correct according to the standard?

php - 从mysql表中读取数据时出现奇怪的字符

utf - 我的多语言 cms 应该使用 utf-8 或 utf-16 或 utf-32 吗?

c++ - 算法库

c++ - 按时间范围向 std::map 添加内容,但按时间值查询

c++ - 平均和减少数组( vector )C++

python - utf_7 解码错误

php - 无法将 PHP 和 MySQL 中的阿拉伯字母添加到我的数据库的一个表中

java - 如何打印来自 json 对象 JAVA 的 bruma 字符