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.pswp.cn/web/38365.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38365.shtml
英文地址,請注明出處:http://en.pswp.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…

Unity 粒子特效(下)

11、Size over Lifetime(生命周期內大小) 主要用于定義粒子從發射到消亡的整個生命周期內&#xff0c;其大小如何隨時間發生變化。通過該模塊&#xff0c;可以創建出如煙霧擴散、火焰膨脹等。Separate Axes&#xff1a;當勾選此選項時&#xff0c;可以分別控制粒子在X軸、Y軸和…

自定義控件動畫篇(四)ObjectAnimator的使用

ObjectAnimator 是 Android 屬性動畫框架中的一個重要組件&#xff0c;它允許你針對特定屬性的值進行動畫處理。與 ValueAnimator 相比&#xff0c;ObjectAnimator 更專注于 UI 組件&#xff0c;可以直接作用于視圖的屬性&#xff0c;如位置、尺寸、透明度等&#xff0c;而無需…

詳細闡述 Spring Boot 的核心概念、優勢、開發流程、常見配置以及最佳實踐

Spring Boot 是一種基于 Java 的框架&#xff0c;它簡化了基于 Spring 的應用開發。通過自動配置和嵌入式服務器等技術&#xff0c;Spring Boot 使得開發者可以快速搭建并運行 Spring 應用。下面&#xff0c;我將詳細闡述 Spring Boot 的核心概念、優勢、開發流程、常見配置以及…

閉包的不同形式

定義 **閉包&#xff08;closure&#xff09;**是一個函數以及其捆綁的周邊環境狀態&#xff08;lexical environment&#xff0c;詞法環境&#xff09;的引用的組合。換而言之&#xff0c;閉包讓開發者可以從內部函數訪問外部函數的作用域。在 JavaScript 中&#xff0c;閉包…

【Jetpack】ViewModel使用技巧

ViewModel的基本使用方法&#xff0c;這里不再講解 ViewModel優點 可以在屏幕旋轉之后&#xff0c;仍然保持之前的狀態&#xff0c;這樣就不用刻意去處理屏幕旋轉事件可以輕松實現作用域內的單例模式可以輕松在作用域內進行數據共享 ViewMode使用注意 不能將Activity作為Co…

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再次安裝軟…

AI安全研究滯后?清華專家團來支招

在21世紀的科技浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;無疑是最為耀眼的一抹亮色。隨著技術的不斷突破&#xff0c;AI正以前所未有的速度融入我們的日常生活&#xff0c;重塑著社會、經濟乃至人類文明的面貌。然而&#xff0c;在這股洶涌澎湃的發展洪流中&#…

二分查找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…

0051__win - RegisterWaitForSingleObject的例子

win - RegisterWaitForSingleObject的例子_registerwaitforsingleobject msdn-CSDN博客

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 光…

力扣-2529. 正整數和負整數的最大計數

文章目錄 力扣題目代碼工程 力扣題目 給你一個按 非遞減順序 排列的數組 nums &#xff0c;返回正整數數目和負整數數目中的最大值。 換句話講&#xff0c;如果 nums 中正整數的數目是 pos &#xff0c;而負整數的數目是 neg &#xff0c;返回 pos 和 neg二者中的最大值。 注…

機器人運動范圍檢測 c++

地上有一個m行n列的方格&#xff0c;一個機器人從坐標&#xff08;0&#xff0c;0&#xff09;的格子開始移動&#xff0c;它每次可以向上下左右移動一個格子&#xff0c;但不能進入行坐標和列坐標的位數之和大于k的格子&#xff0c;請問機器人能夠到達多少個格子 #include &l…

基于大數據架構的情感分析

1 項目介紹 1.1 研究目的和意義 隨著大數據時代的到來&#xff0c;電影產業積累了海量的用戶評論數據&#xff0c;這些數據中蘊含著觀眾的情感傾向與偏好信息&#xff0c;為電影推薦和市場策略制定提供了寶貴資源。然而&#xff0c;如何高效地從這浩瀚的數據海洋中提煉出有價…

QT5:在窗口右上角顯示圖標

目錄 一、環境與目標 二、實現邏輯&#xff08;純代碼&#xff09;與效果 三、參考代碼 四、總結 一、環境與目標 qt版本&#xff1a;5.12.7 windows 11 下的 Qt Designer &#xff08;已搭建&#xff09; 目標&#xff1a;使用嵌套布局的方式將兩個按鈕顯示在窗口右上角…