git命令含有中文,终端输出中文乱码的问题

目录

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

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

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

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

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

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

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

① 系统自带的CMD

② D:/Git/bin/bash.exe

③ D:/Git/bin/sh.exe

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

⑤ 单独使用PowerShell时,控制台输出中文乱码

[1] 方法1:在Microsoft.PowerShell_profile.ps1配置文件中设置utf-8编码

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

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

(3) 总结

4、即便把以上终端应用的界面编码改为65001(utf-8),但IDEA挂载bash.exe时还是会有中文乱码输出

(1) 问题

(2) 解决方法

① 控制面板→区域→管理→更改系统区域设置→开启:Beta版:使用Unicode UTF-8提供全球语言支持(U)

② 在IDEA的设置→编辑器→文件编码 处,把全局编码和项目编码设置为utf-8;

③ 在D:\IDEA\bin 的idea64.exe.vmoptions中添加-Dconsole.encoding=UTF-8和-Dfile.encoding=UTF-8

(3) 运行


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。两个方法同时使用也行。

4、即便把以上终端应用的界面编码改为65001(utf-8),但IDEA挂载bash.exe时还是会有中文乱码输出

(1) 问题

已知IDEA的terminal插件是一个jar包。当terminal加载bash.exe时,git命令含有中文时,会输出中文乱码。

网上说,

  • 设置→编辑器→文件编码 处,把全局编码和项目编码设置为utf-8;
  • 在D:\IDEA\bin 的idea64.exe.vmoptions中添加-Dconsole.encoding=UTF-8,或者-Dfile.encoding=UTF-8;

可以解决IDEA的terminal挂载外部终端时,使用git命令产生的中文乱码现象。

这个方法不全对。经实践,当Win10系统不开启:Beta版:使用Unicode UTF-8提供全球语言支持(U)

任你怎么修改IDEA配置文件的编码,它都默认IDEA的插件以GBK的编码进行编译运行。而我们的bash.exe在前面通过修改注册表,把编码改成了UTF-8,这就导致IDEA的terminal插件在挂载bash.exe时,编码冲突,运行git命令时出现中文乱码。

(2) 解决方法

① 控制面板→区域→管理→更改系统区域设置→开启:Beta版:使用Unicode UTF-8提供全球语言支持(U)

② 在IDEA的设置→编辑器→文件编码 处,把全局编码和项目编码设置为utf-8;

③ 在D:\IDEA\bin 的idea64.exe.vmoptions中添加-Dconsole.encoding=UTF-8和-Dfile.encoding=UTF-8

(3) 运行

再次运行git命令时,已经没有中文乱码了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

品牌推广怎么样?掌握正确做法,让品牌大放异彩!

品牌推广对于初创公司来说是一项至关重要的任务。在市场众多品牌中,如何脱颖而出,是每个品牌方都要考虑的问题。 作为一名手工酸奶品牌的创始人,目前全国复制了100多家门店,我来分享下,如何推广,可以让品牌…

通过shell脚本创建MySQl数据库

通过shell脚本创建数据库 #!/bin/bashserverIP10.1.1.196 SERVER_NAMEecho $serverIP | cut -d . -f4cat<<EOF>db.sql drop database if exists ${SERVER_NAME}_scheduler; drop database if exists ${SERVER_NAME}_kms; drop database if exists ${SERVER_NAME}_uim…

Centos7修改yum源

安装好系统后&#xff0c;网络能通信&#xff0c;源也没有配置&#xff0c;但是安装软件失败。 解决办法&#xff1a;配置阿里yum源 # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # yum clean all # yum make cache再次安装软…

二分查找1

1. 二分查找&#xff08;704&#xff09; 题目描述&#xff1a; 算法原理&#xff1a; 暴力解法就是遍历数组来找到相应的元素&#xff0c;使用二分查找的解法就是每次在数组中选定一个元素来将数组划分为两部分&#xff0c;然后因为数组有序&#xff0c;所以通过大小关系舍弃…

七天速通javaSE:第五天 数组基础

文章目录 前言一、认识数组二、数组的声明和创建1. 声明数组变量2. 创建数组3. 变量的初始化&#xff08;赋值&#xff09;3.1 静态初始化3.2 动态初始化 3. 示例 三、数组的使用1. 循环1.1 普通for循环1.2 For-Each 循环 2. 数组作为函数的参数和返回值 前言 本文将为大家介绍…

Win11 Python3.10 安装pytorch3d

0&#xff0c;背景 Python3.10、cuda 11.7、pytorch 2.0.1 阅读【深度学习】【三维重建】windows10环境配置PyTorch3d详细教程-CSDN博客 1&#xff0c;解决方法 本来想尝试&#xff0c;结果发现CUB安装配置对照表里没有cuda 11.7对应的版本&#xff0c;不敢轻举妄动&#x…

DP:子序列问题

文章目录 什么是子序列子序列的特点举例说明常见问题 关于子序列问题的几个例题1.最长递增子序列2.摆动序列3.最长递增子序列的个数4.最长数对链5.最长定差子序列 总结 什么是子序列 在计算机科学和数学中&#xff0c;子序列&#xff08;Subsequence&#xff09;是指从一个序列…

c语言的烫烫烫烫烫??

当初学习C语言时&#xff0c;对于一些特殊的打印输出可能会感到困惑&#xff0c;比如会出现一堆乱码烫烫烫的情况。其实这是因为在C语言中&#xff0c;对于字符类型和数字类型之间的隐式转换可能会导致打印输出的结果不符合预期。这并不意味着程序员"烫"&#xff0c;…

[激光原理与应用-96]:激光器研发与生产所要的常见设备(大全)与仪器(图解)

目录 一、激光器制造设备 二、测试与校准设备 2.1 光功率计&#xff1a; 1、工作原理 2、主要功能 3、应用场景 4、测量方法 5、总结 2.2. 激光束质量分析仪&#xff1a; 1、概述 2、主要功能和特点 3、工作原理 4、常见品牌和型号 5、应用领域 6、总结 2.3 光…

基于大数据架构的情感分析

1 项目介绍 1.1 研究目的和意义 随着大数据时代的到来&#xff0c;电影产业积累了海量的用户评论数据&#xff0c;这些数据中蕴含着观众的情感倾向与偏好信息&#xff0c;为电影推荐和市场策略制定提供了宝贵资源。然而&#xff0c;如何高效地从这浩瀚的数据海洋中提炼出有价…

QT5:在窗口右上角显示图标

目录 一、环境与目标 二、实现逻辑&#xff08;纯代码&#xff09;与效果 三、参考代码 四、总结 一、环境与目标 qt版本&#xff1a;5.12.7 windows 11 下的 Qt Designer &#xff08;已搭建&#xff09; 目标&#xff1a;使用嵌套布局的方式将两个按钮显示在窗口右上角…

《大海》这歌为何经久不衰?你看歌词写的多美妙!

《大海》这歌为何经久不衰&#xff1f;你看歌词写的多美妙&#xff01; 《大海》是一首由陈大力作词&#xff0c;陈大力、陈秀男作曲&#xff0c;Ricky Ho编曲&#xff0c;张雨生演唱的国语流行歌曲。该曲收录在张雨生1992年11月30日由飞碟唱片发行的同名专辑《大海》中。 作为…

【JavaEE精炼宝库】多线程进阶(2)synchronized原理、JUC类——深度理解多线程编程

一、synchronized 原理 1.1 基本特点&#xff1a; 结合上面的锁策略&#xff0c;我们就可以总结出&#xff0c;synchronized 具有以下特性(只考虑 JDK 1.8)&#xff1a; 开始时是乐观锁&#xff0c;如果锁冲突频繁&#xff0c;就转换为悲观锁。 开始是轻量级锁实现&#xff…

广州外贸建站模板

Yamal外贸独立站wordpress主题 绿色的亚马尔Yamal外贸独立站wordpress模板&#xff0c;适用于外贸公司建独立站的wordpress主题。 https://www.jianzhanpress.com/?p7066 赛斯科Sesko-W外贸建站WP主题 适合机械设备生产厂家出海做外贸官网的wordpress主题&#xff0c;红橙色…

Dify自定义工具例子

1.天气&#xff08;JSON&#xff09; {"openapi": "3.1.0","info": {"title": "Get weather data","description": "Retrieves current weather data for a location.","version": "v1…

动态规划——打家劫舍(C++)

好像&#xff0c;自己读的书确实有点少了。 ——2024年7月2日 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连…

【Node-RED 4.0.2】4.0版本新增特性(官方版)

二、重要功能 *1.时间戳格式改进 过去&#xff0c;node-red 只提供了 最原始的 timestamp 的格式&#xff08;1970-01-01 ~ now&#xff09; 但是现在&#xff0c;额外增加了 2 种格式&#xff1a; ISO 8601 -A COMMON FORMAT&#xff08;YYYY-MM-DDTHH:mm:ss:sssZ&#xff…

思考如何学习一门编程语言?

一、什么是编程语言 编程语言是一种用于编写计算机程序的人工语言。通过编程语言&#xff0c;程序员可以向计算机发出指令&#xff0c;控制计算机执行各种任务和操作。编程语言由一组语法规则和语义规则组成&#xff0c;这些规则定义了如何编写代码以及代码的含义。 编程语言…

linux和mysql基础指令

Linux中nano和vim读可以打开记事文件。 ifdown ens33 ifup ens33 关闭&#xff0c;开启网络 rm -r lesson1 gcc -o code1 code1.c 编译c语言代码 ./code1 执行c语言代码 rm -r dir 删除文件夹 mysql> show databases-> ^C mysql> show databases; -------…

【C++进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫

二叉树1&#xff1a;深入理解数据结构第一弹——二叉树&#xff08;1&#xff09;——堆-CSDN博客 二叉树2&#xff1a;深入理解数据结构第三弹——二叉树&#xff08;3&#xff09;——二叉树的基本结构与操作-CSDN博客 二叉树3&#xff1a;深入理解数据结构第三弹——二叉树…