VS2015 UTF-8中文显示乱码

二进制脑袋 2021-07-05 09:53:09
#include <stdio.h>

int main()
{
	char *pUTF8 = u8"utf-8:中文";
	printf("%s", pUTF8);

	return 0;
}

VS2015是支持u8字符串的,但console显示中文UTF-8是乱码。在console下,把代码页改为65001(chcp 65001)显示也是乱码。

...全文
1282 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
二进制脑袋 2021-07-06
  • 打赏
  • 举报
回复

我在Windows 11(Microsoft Windows [Version 10.0.22000.51])上也实验了,代码页改为65001(chcp 65001),的确可以正确显示utf-8中文。

墨梅无痕 2021-07-05
  • 打赏
  • 举报
回复

#include <windows.h>

// 这两个函数可以设置控制台的代码页,不用去改系统的区域设置。
SetConsoleCP(CP_UTF8);
SetConsoleOutputCP(CP_UTF8);

山河君 2021-07-05
  • 打赏
  • 举报
回复

不光是编译器的问题,可能还存在系统问题,去看看吧
https://blog.csdn.net/qq_42956179/article/details/106075025

二进制脑袋 2021-07-05
  • 打赏
  • 举报
回复

在代码页936下的显示:

img

在代码页65001下的显示:

img

二进制脑袋 2021-07-05
  • 打赏
  • 举报
回复

你什么系统?我是在Windows 7 SP1 x64上测试的命令提示符下测试的。

赵4老师 2021-07-06
  • 举报
回复
@二进制脑袋 Win10
赵4老师 2021-07-05
  • 打赏
  • 举报
回复 1

在我电脑上刚测试:

#include <stdlib.h>

int main()
{
    char *pUTF8    = u8"utf-8:中文";
    system("chcp 65001");
    printf("%s", pUTF8);

    return 0;
}
//Active code page: 65001
//utf-8:中文


65,176

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧