解决问题的过程
重装了一次系统之后,改项目bug的时候发现了flask的GET和POST请求的输出信息全部带有乱码,具体如下
刚看到这种类型的乱码的时候,还以为是哪里的编码出了问题,最终把cmd的默认字符集改为了utf-8(中文乱码可以通过这种办法解决,建议是直接更改注册表的方式,能百度到)
然而仍然不能解决问题,我对比了原来的截图发现这一段原本是有颜色的,现在正好在有颜色的一段的字符串首和字符串末出现乱码,于是定位到这是cmd改变字体颜色时出现的问题。但在百度上没有看到任何与“更改cmd输出内容颜色时出现乱码”的问题,只要一带有关键词“乱码”,就都搜到的是中文乱码的问题,和这个问题完全不一样。学习了python改变cmd输出内容颜色的知识后,完全定位了问题。
cmd控制台有“\033”这个转义符号,而正是这个“\033”出现了问题,变成了?[,这里的问号复制出来是一个方块(乱码专用符号,滑稽)。然而就算如此仍然找不到相关的问题,最后在一篇讲\033如何进行转义的文章中,找到了办法。
https://www.cnblogs.com/naiij/p/9772584.html
它讲的是如何使用cmd输出彩色字体
ANSI转义序列是一种带内信号的转义序列标准,用于控制视频文本终端上的光标位置、颜色和其他选项。
由此我自己认为可能是缺少某种依赖而导致\033无法被识别。抱着试一试的心态,安装了ANSICON,果真成功了。
注意:这种方法不是解决 \033无法识别 或者 变成箭头 这种问题的办法。
解决问题办法
- 点这里下载ANSICON --From Github
- 下载zip
- 解压后使用cmd控制台进入该文件夹(64位系统进入x64,32位系统进入x86)
- 分别运行下面两行代码
ansicon.exe -i
ansicon.exe -l
- 然后就可以解决这样的乱码问题了
有其他什么细节问题欢迎了解的dalao指正,就是因为搜不到这个问题,才写这篇文章,希望能够帮到同样遇到这个问题的人。