前言
通常我们在想让终端输出颜色的时候会使用到颜色代码,比如\x1b[31m
,但是在Windows系统中不管使用哪一种语言来输出这个颜色代码,可能最终都会变成乱码。
有的人的Windows系统可能不会出现这个问题,但如果你接触的系统多一些就会明白这个问题产生的原因。
在Linux系统中,是从未出现过这种问题的,为什么?
因为Linux默认使用的是UTF-8编码,而绝大多数Windows系统使用的是GB系列的编码比如GBK,GB2312,GB18030。
编码不同也就导致了输出的结果不同。
解决
在代码的开头执行一遍代码页编号修改
,以下使用C语言与Python举例
#include <stdlib.h> // 这一个头文件是必须的
int main(int argc, char **argv)
{
system("chcp 65001"); // 修改为UTF-8编码
... // 你的其他代码
}
from os import system
system("chcp 65001")
... # 你的其他代码