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

news2024/11/19 18:20:31

目录

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.coloradmin.cn/o/1887623.html

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

相关文章

还用老气的Excel做报表?试试这款“免费”可视化工具,快速制作3D智慧社区!

随着科技的飞速发展,智慧社区已经成为现代城市管理的重要组成部分。作为这一领域的核心工具,3D智慧社区可视化大屏凭借其先进的技术和强大的功能,正在逐步改变我们的生活方式。今天给大家分享一个 基于山海鲸可视化开发的3D可视化大屏的案例—…

【Flutter】列表流畅性优化

前言 在日常APP的开发中,列表是使用频率最高的,这里讲述在Flutter中优化列表的滑动速度与流畅度,以来提高用户的体验。 方案 1、使用ListView.builder代替ListView ListView.builder在创建列表的时候要比ListView更高效,因为L…

Python题解Leetcode Hot100之二叉树

1. 二叉树的中序遍历 题目描述 给定一个二叉树,返回它的中序遍历。解题思路 使用递归的方法对左子树进行中序遍历,然后访问根节点,最后对右子树进行中序遍历。也可以使用栈来模拟递归的过程,迭代地进行中序遍历。代码class Solut…

机器人控制系列教程之Delta机器人运动学分析(1)

并联机构运动学 对于并联机构的位置正解、位置逆解和对应于位置解的速度、加速度进行分析是并联机构运动学分析主要内容。与串联机构不同,一般并联机构的位置逆解相对要简单,而位置正解则求解比较复杂些。并联机构的位置正解的求解过程中,大…

云徙电商OMS如何赋能品牌电商业务精细化运营

「6.18」、「双十一」、「双十二「、「年货节」等等,如火如荼的「造节」,将电商不断推向高地。 关于电商业务,一个业内共识是,2003 年是线上线下业务切换的关键节点。而消费者需求的变迁是引发这场业务模式革新的核心推手。 盘点…

Crossover和PD虚拟机谁更强大?pd虚拟机一年多少钱

在当前的虚拟化技术和应用程序兼容性解决方案中,Crossover和PD虚拟机(Parallels Desktop)都是备受用户喜爱的选择。对于需要在非原生系统上运行应用程序的用户而言,选择合适的工具尤为重要。那么,Crossover和PD虚拟机谁…

d3dx9_43.dll丢失怎么解决?d3dx9_43.dll怎么安装详细教程

在使用计算机中,如果遇到d3dx9_43.dll丢失或许找不到d3dx9_43.dll无法运行打开软件怎么办?这个是非常常见问题,下面我详细介绍一下d3dx9_43.dll是什么文件与d3dx9_43.dll的各种问题以及d3dx9_43.dll丢失的多个解决方法! 一、d3dx9…

vue3+ts 写echarts 中国地图

需要引入二次封装的echarts和在ts文件写的option <template><div class"contentPage"><myEcharts :options"chartOptions" class"myEcharts" id"myEchartsMapId" ref"mapEcharts" /></di…

vscode语言模式

1.背景 写vue3ts项目的时候&#xff0c;用到了volar插件&#xff0c;在单文件使用的时候&#xff0c;鼠标悬浮在代码上面会有智能提示&#xff1b; 但是最近volar插件提示被弃用了&#xff0c;然后我按照它的官方提示&#xff0c;安装了Vue-official扩展插件&#xff0c;但是…

【开发篇】明明配置跨域声明,为什么却仍可以发送HTTP请求

一、问题 在SpringBoot项目中&#xff0c;明确指定仅允许指定网站跨域访问&#xff1a; 为什么开发人员却仍旧可以通过HTTP工具调用接口&#xff1f; 二、为什么 在回答这个问题之前&#xff0c;我们首先要了解一下什么是CORS&#xff01; 1、什么是CORS CORS的全称为跨域资源…

20240702在飞凌OK3588-C开发板上通过HDMI OUT输出USB3.0接口的热像仪的预览图像

20240702在飞凌OK3588-C开发板上通过HDMI OUT输出USB3.0接口的热像仪的预览图像 2024/7/2 18:19 rootok3588:/# rootok3588:/# rootok3588:/# lsusb Bus 005 Device 001: ID 1d6b:0002 Bus 003 Device 001: ID 1d6b:0001 Bus 001 Device 001: ID 1d6b:0002 Bus 006 Device 00…

普发PfeifferTC400真空泵驱动操作手侧引脚定义通讯定义

普发PfeifferTC400真空泵驱动操作手侧引脚定义通讯定义

shellhub 部署

1、环境介绍 操作系统&#xff1a;龙蜥os 7.9 2、安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i sdownload.docker.commirrors.aliyun.c…

美的、希亦、苏泊尔超声波清洗机值不值得买?对比测评甄选性能王!

超声波清洗机作为一种高效、便捷的清洁设备&#xff0c;不仅可以用于清洗眼镜&#xff0c;还可以用于清洗化妆刷、珠宝、手表等多种物品&#xff0c;极大的方便了日常生活。其高频振动的特点可以帮助去除物品表面的污垢和细菌&#xff0c;让物品焕然一新。因此&#xff0c;选择…

YOLOv8改进 | 卷积模块 | 减少冗余计算和内存访问的PConv【CVPR2023】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

最小步数模型——AcWing 1107. 魔板

最小步数模型 定义 最小步数模型通常是指在某种约束条件下&#xff0c;寻找从初始状态到目标状态所需的最少操作或移动次数的问题。这类问题广泛存在于算法、图论、动态规划、组合优化等领域。具体来说&#xff0c;它涉及确定一个序列或路径&#xff0c;使得按照特定规则执行…

【JS】纯web端使用ffmpeg实现的视频编辑器-视频合并

纯前端实现的视频合并 接上篇ffmpeg文章 【JS】纯web端使用ffmpeg实现的视频编辑器 这次主要添加了一个函数&#xff0c;实现了视频合并的操作。 static mergeArgs(timelineList) {const cmd []console.log(时间轴数据,timelineList)console.log("文件1",this.readD…

BAS(入侵与攻击模拟)正在替代红队测试?

之前经常会被用户问到&#xff0c;漏扫、渗透和红队红的区别是啥&#xff1f; 传统的漏扫、渗透和红蓝对抗&#xff0c;可以看到工具化的漏洞不可靠&#xff0c;人工的成本就高。怎么找到一个漏洞可信度又高&#xff0c;成本又低的&#xff0c;就诞生了BAS。 抛开漏扫&#xf…

多商户b2b2c商城系统怎么运营

B2B2C多用户商城系统支持多种运营模式&#xff0c;以满足不同类型和发展阶段的企业需求。以下是五大主要的运营模式&#xff1a; **1. 自营模式&#xff1a;**平台企业通过建立自营线上商城&#xff0c;整合自身多渠道业务。通过会员、商品、订单、财务和仓储等多用户商城管理系…

windows自带的性能采集配置方法

1 计算机---右键---管理 2 性能--数据收集器几---用户自定义 3新建--输入程序名称 并在此页面选择--手动创建&#xff08;高级&#xff09; 4 下一步--勾选性能计数器---下一步 5 添加--找到process Processor Time User Time Handle Count ID Process Private Bytes…