解決所有終端中文輸出亂碼的問題

一、系統自帶的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。兩個方法同時使用也行。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36777.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36777.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36777.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡抓包分析工具

摘要 隨著網絡技術的快速發展,網絡數據的傳輸和處理變得日益復雜。網絡抓包分析工具作為網絡故障排查、性能優化以及安全審計的重要工具,對于提升網絡管理的效率和準確性具有重要意義。本文旨在設計并實現一款高效、易用的網絡抓包分析工具,…

期末測試一

字符數組的排序注意的問題 &#xff1a; 1.對于輸入字符的時候 如果給出了要輸入幾個字符 n >>>>> for ( i 0 ; i < n ;i ) { scanf("%c",&ch); } 如果說直到輸入到換行符結束 >>>>>>while ( ch! \ n ) 這個需要額…

CSS|04 復合選擇器偽類選擇器屬性選擇器美化超鏈接

基本選擇器&#xff1a;見上篇基本選擇器 復合選擇器選擇器1,選擇器2{屬性:值;} 多元素選擇器&#xff0c;同時匹配選擇器1和選擇器2&#xff0c;多個選擇器之間用逗號分隔舉例&#xff1a; p,h1,h2{margin:0px;}E F{屬性:值;} 后代元素選擇器&#xff0c;匹配所有屬于E元素后…

基于長短時記憶網絡LSTM的TE過程故障診斷(MATLAB R2021B)

實驗所用 TE 仿真過程的數據集是網上公開的數據集&#xff0c;該數據集中的訓練集和測試集分別包含 20 種故障工況和一種正常工況數據&#xff0c;其中所采集的每個樣本信號包含 41 個測量變量和 11 個控制變量&#xff0c;所以每個時刻采集到的樣本有 52 個觀測變量。 TE 仿真…

NoSQL之Redis配置與管理

目錄 一、關系型數據庫和非關系型數據庫 1.關系型數據庫 2.非關系型數據庫 3.關系型數據庫和非關系型數據庫區別 二、Redis 1.Redis簡介 2.Redis 的優點 3.Redis 使用場景 4.Redis的數據類型 5.哪些數據適合放入緩存中&#xff1f; 6.Redis為什么這么快&#xff1f;…

BUG:AttributeError: module ‘websocket‘ has no attribute ‘enableTrace’

AttributeError: module ‘websocket’ has no attribute enableTrace’ 環境 windows 11 Python 3.10websocket 0.2.1 websocket-client 1.8.0 websockets 11.0.3 rel 0.4.9.19詳情 一開始…

ActiveMQ camel

游覽器輸入地址: http://127.0.0.1:8161/admin/ 訪問activemq管理臺 賬號和密碼默認為: admin/admin# yml配置的密碼也是如下的密碼 activemq:url: failover:(tcp://localhost:61616)username: adminpassword: adminComponent public class ActiveMqReceiveRouter extends Rout…

AudioLM音頻生成模型

GPT-4o (OpenAI) AudioLM&#xff08;Audio Language Model&#xff09;是一種生成音頻的深度學習模型。它可以通過學習語言模型的結構來生成連貫和高質量的音頻信號。這類模型通常應用于語音合成、音樂生成和音頻內容生成等領域。以下是一些與AudioLM相關的核心概念和技術細…

【JavaEE進階】Spring AOP使用篇

目錄 1.AOP概述 2.SpringAOP快速入門 2.1 引入AOP依賴 2.2 編寫AOP程序 3. Spring AOP詳解 3.1 Spring AOP 核心概念 3.1.1切點(Pointcut) 3.1.2 連接點 (Join Point) 3.1.3 通知(Advice) 3.1.4 切面(Aspect) 3.2 通知類型 3.3PointCut 3.4 切面優先級 3.5 切點表…

基于經典滑膜控制的永磁同步電機調速系統MATLAB仿真

滑膜控制器 取PMSM狀態變量為&#xff1a; ωref為目標轉速&#xff0c;ωm為電機輸出轉速。將此式求導得&#xff1a; 定義系統滑模面函數為&#xff1a; 對滑模面函數求導 在電機實際控制時&#xff0c;滑模控制方法存在高頻抖振問題&#xff0c;則需要選取合適的指數趨近率…

web前端——css(一篇教會網頁制作)

目錄 一、基本語法 1.行內樣式表 2.內嵌樣式表 3.外部樣式表 二、選擇器 1.標簽選擇器 2.類選擇器 3.id 選擇器 4.通配選擇器 三、常見修飾 1.文本 2.背景 3.列表 4.偽類 5.透明度 6.塊級、行級、行級塊標簽 7.div 和 span 四、盒子模型&#xff08;重點&…

【PostgreSQL】守護數據安全:事務與數據完整性管理

目錄 事務管理&#xff1a;確保操作的原子性 事務的概念與重要性 事務的啟動與提交 事務的回滾&#xff08;ROLLBACK&#xff09;&#xff08; 數據一致性與隔離級別 隔離級別的解釋 設置隔離級別 錯誤處理與事務的高級策略 異常處理&#xff08;SAVEPOINT & EXCE…

25屆最近5年重慶郵電大學自動化考研院校分析

重慶郵電大學 目錄 一、學校學院專業簡介 二、考試科目指定教材 三、近5年考研分數情況 四、近5年招生錄取情況 五、最新一年分數段圖表 六、歷年真題PDF 七、初試大綱復試大綱 八、學費&獎學金&就業方向 一、學校學院專業簡介 二、考試科目指定教材 1、考試…

[數據集][目標檢測]電纜鋼絲繩線纜缺陷檢測數據集VOC+YOLO格式1800張3類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;1800 標注數量(xml文件個數)&#xff1a;1800 標注數量(txt文件個數)&#xff1a;1800 標注…

單例模式(下)

文章目錄 文章介紹步驟安排及單例講解step1&#xff1a;注冊單例類型&#xff08;main.cpp&#xff09;step2&#xff1a;定義類和私有構造函數&#xff08;keyboardinputmanager.h&#xff09;step3:&#xff08;keyboardinputmanager.cpp&#xff09;step4&#xff1a;在qml中…

雷卯一站式解決電子設備靜電浪涌與接口安全

在快速演進的數字時代&#xff0c;電子設備不僅是日常生活的核心&#xff0c;更是工業自動化、智能穿戴、智能家居乃至未來交通的基石。然而&#xff0c;隨著技術邊界的不斷拓展&#xff0c;設備面臨的挑戰也日益嚴峻&#xff0c;尤其是來自靜電放電(ESD)、浪涌沖擊及電磁干擾的…

【2024最新華為OD-C/D卷試題匯總】[支持在線評測] 特殊加密算法(200分) - 三語言AC題解(Python/Java/Cpp)

&#x1f36d; 大家好這里是清隆學長 &#xff0c;一枚熱愛算法的程序員 ? 本系列打算持續跟新華為OD-C/D卷的三語言AC題解 &#x1f4bb; ACM銀牌&#x1f948;| 多次AK大廠筆試 &#xff5c; 編程一對一輔導 &#x1f44f; 感謝大家的訂閱? 和 喜歡&#x1f497; &#x1f…

Rust 跨平臺-Android 和鴻蒙 OS

1. 安裝 rustup rustup 是 Rust 的安裝和版本管理工具 $ curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh 該命令會安裝 rusup 和最新的穩定版本的 Rust&#xff1b;包括&#xff1a; rustc Rust 編譯器&#xff0c;用于將 Rust 代碼編譯成可執行文件或庫。 ca…

技術速遞|Visual Studio Code 的 .NET MAUI 擴展現已正式發布

作者&#xff1a;Maddy Montaquila 排版&#xff1a;Alan Wang 今天&#xff0c;我們非常高興地宣布 .NET MAUI VS Code 擴展插件結束了預覽階段&#xff0c;并將包含一些期待已久的新功能 - 包括 XAML IntelliSense 和 Hot Reload&#xff01; 什么是 .NET MAUI 擴展插件&…

GuLi商城-商品服務-API-三級分類-刪除-頁面效果

一步步學習Vue太慢了&#xff0c;準備跳過前端的學習&#xff0c;直接使用前端完整的項目 下載依賴npm install&#xff0c;會報錯&#xff0c;排查了好久 我安裝的是Node14&#xff0c;所以必須要安裝4.14 Vscode終端輸入&#xff1a;npm install node-sass4.14 輸入&#x…