65,176
社区成员




#include <stdio.h>
int main()
{
char *pUTF8 = u8"utf-8:中文";
printf("%s", pUTF8);
return 0;
}
VS2015是支持u8字符串的,但console显示中文UTF-8是乱码。在console下,把代码页改为65001(chcp 65001)显示也是乱码。
我在Windows 11(Microsoft Windows [Version 10.0.22000.51])上也实验了,代码页改为65001(chcp 65001),的确可以正确显示utf-8中文。
#include <windows.h>
// 这两个函数可以设置控制台的代码页,不用去改系统的区域设置。
SetConsoleCP(CP_UTF8);
SetConsoleOutputCP(CP_UTF8);
不光是编译器的问题,可能还存在系统问题,去看看吧
https://blog.csdn.net/qq_42956179/article/details/106075025
在代码页936下的显示:
在代码页65001下的显示:
在我电脑上刚测试:
#include <stdlib.h>
int main()
{
char *pUTF8 = u8"utf-8:中文";
system("chcp 65001");
printf("%s", pUTF8);
return 0;
}
//Active code page: 65001
//utf-8:中文