输出乱码疑难杂症总结及解决方案
输出乱码问题几乎是所有的程序员都会遇到的问题,总是让我们头痛不已。这里我们简单讲讲原因,并对最常见的乱码问题给出解决方案。
参考资料:
将powershell的编码默认改为UTF-8_中路厨师长的博客-CSDN博客_powershell utf-8
Windows10如何将命令提示符替换为PowerShell-百度经验
powershell、cmd终端修改编码 - xututu6 - 博客园
原因
出现乱码一定是因为解析文件的时候采用了错误的编码格式。对于不同的情况,具体的解析器不同,所以解决方法也不同,但是万变不离其宗,只要让解析器采用了正确的解析方式 / 输入的文件采用正确的编码格式,问题就会迎刃而解。
其中最常见的,就是在控制台中输出的时候出现的乱码问题。这是因为中文的win默认的控制台是GB2312,而我们常用的编码格式是utf8。
我开始以为是换语言就可以了,结果系统换成英文的也没有效果。后来我突然想起来,在官网下载镜像的时候有选择语言这一项,如下图所示。我也试过网上改注册表,改地区等等方法,一个都不好用,甚至会导致一些更麻烦的问题。
解决方案
既然我们的问题的根源是控制台的编码有问题,那我们就把控制台的编码换成utf8就行了。
题主这里默认的控制台使用的是PowerShell,不确定cmd是否具有同样的功能。
修改默认控制台为PowerShell的方法
win11
先打开控制台(cmd/powershell均可) -> 点击右边下拉箭头 -> 选择设置 -> 默认配置改为PowerShell
win10
控制台 -> 任务栏和导航 -> 打开“当我右键单机“开始”按钮或按下windows键。。。”
修改powershell的编码
- 管理员身份打开powershell,输入以下代码。
New-Item $PROFILE -ItemType File -Force
- 找到以下路径的文件,打开。默认是空的,输入下面内容,保存。
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
管理员身份打开PowerShell,输入以下代码。
Set-ExecutionPolicy Unrestricted
输入chcp,查看代码是否为65001(utf8)
注意
如果使用idea,clion,webstore, vscode等,不要忘记修改IDE的文件编码格式。
j家全家桶(idea,clion,webstore等)修改方式:
setting -> files -> file encodings 修改下图中三处地方
在主页面的右下方也查看当前文件采用的编码格式,如果没有显示,请在设置中打开。
补充
chcp使用的编码以及其对应的语言
编码页 | 国家(地区)或语言 |
---|---|
437 | 美国 |
708 | 阿拉伯文(ASMO 708) |
720 | 阿拉伯文(DOS) |
850 | 多语言(拉丁文 I) |
852 | 中欧(DOS) - 斯拉夫语(拉丁文 II) |
855 | 西里尔文(俄语) |
857 | 土耳其语 |
860 | 葡萄牙语 |
861 | 冰岛语 |
862 | 希伯来文(DOS) |
863 | 加拿大 - 法语 |
865 | 日耳曼语 |
866 | 俄语 - 西里尔文(DOS) |
869 | 现代希腊语 |
874 | 泰文(Windows) |
932 | 日文(Shift-JIS) |
936 | 中国 - 简体中文(GB2312) |
949 | 韩文 |
950 | 繁体中文(Big5) |
1200 | Unicode |
1201 | Unicode (Big-Endian) |
1250 | 中欧(Windows) |
1251 | 西里尔文(Windows) |
1252 | 西欧(Windows) |
1253 | 希腊文(Windows) |
1254 | 土耳其文(Windows) |
1255 | 希伯来文(Windows) |
1256 | 阿拉伯文(Windows) |
1257 | 波罗的海文(Windows) |
1258 | 越南文(Windows) |
20866 | 西里尔文(KOI8-R) |
21866 | 西里尔文(KOI8-U) |
28592 | 中欧(ISO) |
28593 | 拉丁文 3 (ISO) |
28594 | 波罗的海文(ISO) |
28595 | 西里尔文(ISO) |
28596 | 阿拉伯文(ISO) |
28597 | 希腊文(ISO) |
28598 | 希伯来文(ISO-Visual) |
38598 | 希伯来文(ISO-Logical) |
50000 | 用户定义的 |
50001 | 自动选择 |
50220 | 日文(JIS) |
50221 | 日文(JIS-允许一个字节的片假名) |
50222 | 日文(JIS-允许一个字节的片假名 - SO/SI) |
50225 | 韩文(ISO) |
50932 | 日文(自动选择) |
50949 | 韩文(自动选择) |
51932 | 日文(EUC) |
51949 | 韩文(EUC) |
52936 | 简体中文(HZ) |
65000 | Unicode (UTF-7) |
65001 | Unicode (UTF-8) |
输出乱码疑难杂症总结及解决方案相关推荐
- 【错误记录】Android Studio 编译信息输出乱码
文章目录 一.报错信息 二.解决方案 一.报错信息 编译过程中 , 输出乱码信息 ; 二.解决方案 选择 " 菜单栏 / Help / Edit Custom VM Options &quo ...
- IDEA控制台输出乱码解决方案
2019独角兽企业重金招聘Python工程师标准>>> IDEA控制台输出乱码解决方案: intellij安装目录下bin\idea.exe.vmoptions文件 追加一句: -D ...
- idea Springboot项目sout控制台中文输出乱码解决方案
idea Springboot项目sout控制台中文输出乱码解决方案 出现问题的环境 解决步骤 出现问题的环境 今天遇到了使用 IDEA 2020.3.3版本,创建了Maven->quickSt ...
- php源码 乱码 通达oa_php中文乱码问题的终极解决方案汇总
前言 本文主要给大家介绍了关于php中文乱码问题的终极解决方案,分享出来供大家参考学习,在开始之前,我们先来谈谈为什么会出现中文乱码? 很多新手朋友学习PHP的时候,发现程序中的中文在输出的时候会出现 ...
- Python — 文字输出乱码
1. Python中列表或字典输出乱码的解决方法 问题: Python中的列表(list)或字典包含中文字符串,直接使用print会出现以下的结果: #打印字典 dict = {'name': '张三 ...
- [转载]关于中文乱码问题的一些解决方案和经验
关于中文乱码问题的一些解决方案和经验 1.字节和unicode java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的.因此java要对这些字节流经 ...
- python输出到文件乱码_解决python解析文件时输出乱码
首先获取到json模块,encoding指定文件编码utf-8,errors报错时忽略错误,print()输出结果看看是否有问题. # -*- coding: utf-8 -*- import jso ...
- 小猫爪:这些年遇过的Bug2-STM32 UART输出乱码
小猫爪:这些年遇过的Bug2-STM32 UART输出乱码 1 背景 2 场景描述 3 分析原因 4 解决方案 1 背景 芯片型号:STM32F103C8T6 应用类型:普通UART应用 错误现象:配 ...
- Eclipse乱码问题最全解决方案
Windows>>Pereferences>>General>Editors>>Spelling>>Encoding选项下选择other,然后输入 ...
- idea sout输出乱码的问题
idea sout输出乱码的问题 : 在tomcat的启动窗口打印的启动信息中包含了大量的中文乱码,虽然这些对tomcat本身的使用没有任何影响,但却非常碍眼,影响视觉效果! tomcat启动时启动窗 ...
最新文章
- Java非阻塞I/O模型之NIO说明
- 【iOS开发-8】UIButton类型属性简单归纳以及自定义按钮的设置
- 5-简单选择排序C实现(递增递减的简单转换)
- 蓝桥杯单片机篇:NE555 频率测量
- mysql增删查改总结_MySQL2 数据增删改查 SQL总结
- Sublime2 配置python 和 c++
- ajax上传文件formData
- CarSim仿真快速入门(十四)—CarSim-Simulink联合仿真
- t470键盘拆解_ThinkPad T470拆机图赏:堪称商务本的业界标杆
- SVN下载安装、SVN使用详细教程(Window+Linux)
- ssr提示服务器名无效_联想服务器在UEFI HII界面中配置阵列的基本操作
- 怎么用html制作3D页面,html – 如何使用CSS制作图像3D
- IIS发布网站 后台接口404
- 第一章 .NET体系结构
- 如何通过低代码平台搭建以“督办”为中心的办公管理系统
- ROS编译C++文件过程出现 error: expected unqualified-id before ‘.’ token
- 2023年北京邮电大学计算机考研信息汇总
- 4 Day:MBR使用硬盘
- 基于深度学习下的稳定学习究竟是什么?因果学习?迁移学习?之一
- 微信第三方平台 错误码
热门文章
- 华为浏览器如何进入阅读模式_华为浏览器阅读模式 | 手游网游页游攻略大全
- 天龙八部手游服务器维护公告,天龙维护时间(天龙八部手游11月29日例行维护公告)...
- otdr全部曲线图带解说_【赛事主播】你最期望哪个电竞选手组合来解说比赛?...
- 2018秋季学习总结
- 华为荣耀5cvs华为v9play_荣耀V9Play和荣耀畅玩6A全面对比评测 看完这篇再判断
- 王道数据结构3.2.5——1、循环队列中设置tag区分头指针front和队尾指针rear相等时队列的状态是空还是满
- Data requirement
- Policy Gradient (PG)与Proximal Policy Optimization (PPO)算法详解
- C++/EasyX面向对象编程实现-简单双人对战五子棋
- 常见出血性疾病的实验诊断题库【1】