解决所有终端中文输出乱码的问题

一、系统自带的cmd.exe 以及 Git的bash.exe、sh.exe、git-bash.exe和git-cmd.exe,和PowerShell默认使用“当前系统区域设置”设定好的936 (ANSI/OEM - 简体中文 GBK)语言编码。

1、[当前代码页] 的936 (ANSI/OEM - 简体中文 GBK) 是导致中文乱码的原因

控制面板→区域→管理→更改系统区域设置,当前系统区域设置(C) 为:中文(简体,中国)。其对应的语言编码是:936 (ANSI/OEM - 简体中文 GBK)。

系统自带的cmd.exe 以及 Git的bash.exe、sh.exe、git-bash.exe和git-cmd.exe 和Powershell以此为依据,在注册项CodePage设置为936。

导致“属性”→ “选项”中,其【当前代码页】的编码固定在936 (ANSI/OEM - 简体中文 GBK)。

2、这样会导致什么问题呢?

(1) 问题一: 【属性】选项的【字体】无法识别自定义文字样式,【默认值】选项可选自定义字体样式,却无法覆盖【属性】选项

【属性】里面,【选项】的“当前代码页”编码为936 (ANSI/OEM - 简体中文 GBK)时,【字体】无法识别自定义文字样式,比如:CaskaydiaMono NFM。此处只能选择类似于“新宋体”、“隶书”、“楷体”等样式。

选择【默认值】时,虽然可以选择自定义下载的字体,但是无法覆盖【属性】选项里面的字体样式,字体的样式还是“新宋体”

(2) 问题二:在使用git命令输出中文时会有乱码

因为【当前代码页】编码(即控制台编码格式)固定在936 (ANSI/OEM - 简体中文 GBK),而这些控制台依赖的git.exe默认编码格式为utf-8,由于编码格式不一致,程序运行时往往会出现中文乱码的情况。

此时在D:/Git/etc目录下,往配置文件 (例如:bash.bashrc、profile、gitconfig) 中设置编码为utf-8的语句也没有任何作用。比如下图:bash.bashrc中设置编码为utf-8,对解决控制台的中文乱码没有任何作用。

3、解决方法:把注册表中Console(控制台)的CodePage(当前代码页)选项的编码修改为65001(utf-8)

(1) Win+R,输入regedit,定位到 [计算机\HKEY_CURRENT_USER\Console\]

(2) 把常用的终端(控制台)的CodePage设置为65001(utf-8)

有CodePage选项的,点击【十进制】的基数,设置为65001(utf-8)。没有CodePage选项的请自行新建。

① 系统自带的CMD

② D:/Git/bin/bash.exe

③ D:/Git/bin/sh.exe

因为sh.exe没有CodePage选项,我们需要右键→新建→DWORD(32位)值。命名该项为:CodePage。十进制值为65001。

④ D:/Git/bin/git-bash.exe 和 D:/Git/bin/git-cmd.exe

同上设置,我们需要右键→新建→DWORD(32位)值。命名该项为:CodePage。十进制值为65001。

⑤ 单独使用PowerShell时,控制台输出中文乱码
[1] 方法1:在Microsoft.PowerShell_profile.ps1配置文件中设置utf-8编码

在PowerShell中输入$profile,查看.ps1配置文件的路径

编辑Microsoft.PowerShell_profile.ps1。在里面添加以下语句。

#8. 设置Powershell控制台输出结果的编码为utf-8,解决输出中文乱码的问题

$OutputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8

[2] 方法2:打开regedit,定位到:计算机\HKEY_CURRENT_USER\Console\。给所有PowerShell选项新建类型为DWORD(32)值的CodePage项,点击【基数:十进制】,写入数值:65001 (utf-8),从源头解决中文乱码问题。

以上方法只能解决:[单独使用PowerShell时,控制台输出中文乱码] 的问题

⑥ 使用Terminal来挂靠PowerShell时,控制台输出中文乱码

当我们使用Terminal来挂靠PowerShell时,Terminal会默认使用系统的GBK编码,覆盖了PowerShell在注册表设置的CodePage值:65001(utf-8)。导致输出到控制台时会有中文乱码。

方法1的做法,不仅可以避免上述问题。单独使用PowerShell时也会避免中文乱码。

在PowerShell中输入$profile,查看.ps1配置文件的路径

编辑Microsoft.PowerShell_profile.ps1。在里面添加以下语句。

#8. 设置Powershell控制台输出结果的编码为utf-8,解决输出中文乱码的问题

$OutputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8

再次测试,不再有中文乱码。

(3) 总结

① 对于系统自带的cmd.exe 以及 Git的bash.exe、sh.exe、git-bash.exe和git-cmd.exe ,遇到在控制台输出中文乱码的问题,建议进入regedit注册表中,新建或修改DWORD类型的CodePage的值,统一为:65001 (utf-8)

单独使用Powershell.exe,遇到在控制台输出中文乱码的问题,有两种解决方法:

方法1:通过$profile定位到.ps1配置文件,输入以下语句:

#8. 设置Powershell控制台输出结果的编码为utf-8,解决输出中文乱码的问题

$OutputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8

方法2:进入regedit注册表中,新建或修改DWORD类型的CodePage的值,统一为:65001 (utf-8)

使用Terminal来挂靠PowerShell,遇到在控制台输出中文乱码的问题,有一种解决方法:

方法1:通过$profile定位到.ps1配置文件,输入以下语句:

#8. 设置Powershell控制台输出结果的编码为utf-8,解决输出中文乱码的问题

$OutputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8

所以对于PowerShell来说,使用方法1可以直接解决控制台输出中文乱码的问题。方法2可用可不用。不会影响方法1。两个方法同时使用也行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/752315.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【基于深度学习方法的激光雷达点云配准系列之GeoTransformer】——模型部分浅析(1)

【GeoTransformer系列】——模型部分 1. create_model2. model的本质3. 模型的主要结构3.1 backbone3.2 transformer本篇继续对GeoTransformer/experiments/geotransformer.kitti.stage5.gse.k3.max.oacl.stage2.sinkhorn/下面的trainval.py进行详细的解读,主要是模型部分, 可以…

单位转换:将kb转换为 MB ,GB等形式

写法一&#xff1a; function formatSizeUnits(kb) {let units [KB, MB, GB, TB, PB,EB,ZB,YB];let unitIndex 0;while (kb > 1024 && unitIndex < units.length - 1) {kb / 1024;unitIndex;}return ${kb.toFixed(2)} ${units[unitIndex]}; } console.log(for…

linux 下配置docker mirrors

一、配置mirrors vi /etc/docker/daemon.json {"registry-mirrors": ["https://docker.blfrp.cn"],"log-opts": {"max-size": "10m","max-file": "3"} }#完成配置后重启docker systemctl restart dock…

SAP ALV 负号提前

FUNCTION CONVERSION_EXIT_ZSIGN_OUTPUT. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" REFERENCE(INPUT) *" EXPORTING *" REFERENCE(OUTPUT) *"…

labview排错

源代码正常跑&#xff0c;应用程序报这个错&#xff0c;是因为源代码的可以找到项目路径内所有dll的路径&#xff0c;而应用程序只能找到data文件夹的dll文件 解决查看源代码中.net的程序集的路径&#xff0c;复制对应的dll到data文件夹下

24V 350W开关电源电路原理图+PCB工程文件 UC3843AD lm193芯片

资料下载地址&#xff1a;24V 350W开关电源电路原理图PCB工程文件 UC3843AD lm193芯片 1、原理图 2、PCB

昇思25天学习打卡营第5天|数据变换Transforms

数据变换 Transforms 在完成数据加载后&#xff0c;还应该对数据进行预处理。之前在数据集篇介绍过map函数&#xff0c;这里的transform就是和map一起使用的。transform有针对图像、文本、音频等不同类型的&#xff0c;并且也支持lambda函数。 环境配置 import numpy as np …

Echarts地图实现:各省市计划录取人数

Echarts地图实现&#xff1a;各省市计划录取人数 实现功能 本文将介绍如何使用 ECharts 制作一个展示中国人民大学2017年各省市计划录取人数的地图。我们将实现以下图表形式&#xff1a; 地图&#xff1a;基础的地图展示&#xff0c;反映不同省市的录取人数。散点图&#xf…

华为od 2024 | 什么是华为od,od 薪资待遇,od机试题清单

目录 专栏导读华为OD机试算法题太多了&#xff0c;知识点繁杂&#xff0c;如何刷题更有效率呢&#xff1f; 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、队列4、链表5、栈6、滑动窗口7、二叉树8、并查集9、矩阵 三、算法1、基础算法① 贪心思维② 二分查…

【系统架构设计师】四、嵌入式基础知识(软件|软件设计|硬件|式总线逻辑)

目录 一、嵌入式软件 1.1 嵌入式软件分类 1.2 板级支持包(BSP) 1.3 BootLoader 1.4 设备驱动程序 二、嵌入式软件设计 2.1 编码 2.2 交叉编译 2.3 交叉调试 三、嵌入式系统硬件的分类 3.1 根据用途分类 3.2 存储器分类 四、内&#xff08;外&#xff09;总线逻辑 …

江科大笔记—FLASH闪存

FLASH闪存 程序现象&#xff1a; 1、读写内部FLASH 这个代码的目的&#xff0c;就是利用内部flash程序存储器的剩余空间&#xff0c;来存储一些掉电不丢失的参数。所以这里的程序是按下K1变换一下测试数据&#xff0c;然后存储到内部FLASH&#xff0c;按下K2把所有参数清0&…

力扣每日一题 6/23 字符串/模拟

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 520.检测大写字母【简单】 题目&#xff1a; 我们定义&#xff0c;在以下…

【web开发】chrome拦截localhost跨域请求原因

在设置中&#xff0c;默认屏蔽了&#xff0c;请求不会到localhost服务器 chrome://flags/#block-insecure-private-network-requests 设置disable即可

solidworks钣金工厂共享云桌面方案

随着信息技术的飞速发展和企业数字化转型的深入&#xff0c;传统的钣金工厂面临着诸多挑战&#xff0c;其中之一就是如何在保证数据安全的前提下&#xff0c;提高设计、生产和管理的效率。 SolidWorks是一款专业的三维3D设计软件&#xff0c;功能强悍&#xff0c;支持分布式数…

Word页眉横线怎么删除?5个方法,记得收藏!

在数字化办公日益普及的今天&#xff0c;Word文档成为了我们日常工作中不可或缺的一部分。然而&#xff0c;在编辑和排版Word文档时&#xff0c;我们有时会面临一些看似微小却令人头疼的问题&#xff0c;比如页眉中的横线。这条不起眼的横线&#xff0c;就像是在整洁的页面上划…

基于SpringBoot的藏区特产销售平台

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; SpringBoot框架 工具&#xff1a; MyEclipse 系统展示 首页 个人中心 特产信息管理 订单管…

CentOS安装Docker教程(包含踩坑的经验)

目录 一.基础安装 ▐ 安装Docker 二.启动Docker服务 三.配置Docker镜像加速 一.基础安装 在安装Docker之前可能需要先做以下准备 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker-client-latest \docker-…

现货黄金如何操作:黄金技术性止损的运用

止损是现货黄金如何操作中不得不提及的方法。在现货黄金投资过程中&#xff0c;风险是存在的&#xff0c;重要的是如何将风险把控好。这里的一个重要概念就是&#xff0c;要对每一笔交易设定好止损&#xff0c;可以讲&#xff0c;这就是现货黄金如何操作的方法中最重要的一种。…

重磅!免费一键批量混剪工具它来了,一天上万短视频不是梦

很多做短视频营销的朋友需要批量生成大量的短视频&#xff0c;但是市面上的工具一是不好用&#xff0c;二是要收费。 今天给大家介绍一款免费的&#xff0c;可以自动化批量生成短视频的工具MoneyPrinterPlus。 同时支持windows和linux平台。 有了它&#xff0c;一天生成上万短…

揭秘搜索引擎核心机制:网页爬行、索引、预处理、建立索引、查询处理与结果排序策略的深入解读

搜索引擎的工作原理与流程是一个复杂而精细的系统工程&#xff0c;旨在帮助用户从互联网的海量信息中快速找到最相关、最有价值的内容。 理解搜索引擎工作原理对于内容创作、网站优化、广告投放及日常搜索至关重要。它能指导网页设计更加友好&#xff0c;提高搜索引擎排名&…