cmd \033转义字符对输出内容进行颜色变化出现乱码的解决办法

解决cmd \033转义字符被识别时乱码

    • 解决问题的过程
    • 解决问题办法

解决问题的过程

重装了一次系统之后,改项目bug的时候发现了flask的GET和POST请求的输出信息全部带有乱码,具体如下
cmd \033转义字符对输出内容进行颜色变化出现乱码的解决办法_第1张图片
刚看到这种类型的乱码的时候,还以为是哪里的编码出了问题,最终把cmd的默认字符集改为了utf-8(中文乱码可以通过这种办法解决,建议是直接更改注册表的方式,能百度到)
在这里插入图片描述
然而仍然不能解决问题,我对比了原来的截图发现这一段原本是有颜色的,现在正好在有颜色的一段的字符串首和字符串末出现乱码,于是定位到这是cmd改变字体颜色时出现的问题。但在百度上没有看到任何与“更改cmd输出内容颜色时出现乱码”的问题,只要一带有关键词“乱码”,就都搜到的是中文乱码的问题,和这个问题完全不一样。学习了python改变cmd输出内容颜色的知识后,完全定位了问题。
cmd控制台有“\033”这个转义符号,而正是这个“\033”出现了问题,变成了?[,这里的问号复制出来是一个方块(乱码专用符号,滑稽)。然而就算如此仍然找不到相关的问题,最后在一篇讲\033如何进行转义的文章中,找到了办法。
https://www.cnblogs.com/naiij/p/9772584.html
它讲的是如何使用cmd输出彩色字体

ANSI转义序列是一种带内信号的转义序列标准,用于控制视频文本终端上的光标位置、颜色和其他选项。

由此我自己认为可能是缺少某种依赖而导致\033无法被识别。抱着试一试的心态,安装了ANSICON,果真成功了。
cmd \033转义字符对输出内容进行颜色变化出现乱码的解决办法_第2张图片
注意:这种方法不是解决 \033无法识别 或者 变成箭头 这种问题的办法。

解决问题办法

  1. 点这里下载ANSICON --From Github
  2. 下载zip
    cmd \033转义字符对输出内容进行颜色变化出现乱码的解决办法_第3张图片
  3. 解压后使用cmd控制台进入该文件夹(64位系统进入x64,32位系统进入x86)
    cmd \033转义字符对输出内容进行颜色变化出现乱码的解决办法_第4张图片
  4. 分别运行下面两行代码
    ansicon.exe -i
    ansicon.exe -l
  5. 然后就可以解决这样的乱码问题了
    在这里插入图片描述

有其他什么细节问题欢迎了解的dalao指正,就是因为搜不到这个问题,才写这篇文章,希望能够帮到同样遇到这个问题的人。

你可能感兴趣的:(python,cmd)