1. 程式人生 > 其它 >#Windows命令列終端選擇#git-bash ipconfig/ping/執行window命令#windows terminal git-bash ls 輸出中文亂碼

#Windows命令列終端選擇#git-bash ipconfig/ping/執行window命令#windows terminal git-bash ls 輸出中文亂碼

技術標籤:git-bashwindows terminal

背景:git-bash ipconfig/ping/執行window命令 輸出中文亂碼

習慣了linux下的命令,所以window自帶的都用不習慣,用的git-bash(安裝Git軟體後,在安裝目錄下/bin/bash)
但是有個問題:如下:
在這裡插入圖片描述
有亂碼,看了網上的回答,大概的原因是git-bash 執行window的一些命令,window命令輸出的結果是GBK中文格式,git-bash接收後顯示由於自身用的是UTF-8,所以亂碼

解決這個問題有兩種方式:

  • 方法1. git-bash配置中選擇GBK字符集,但是如果用linux自己的一些命令如ls 輸出結果也會是亂碼
  • 方法2. 在ping或者ifconfig前面加上winpty就可以, winpty 進行字元流轉換。關於winpty, 可以參考。。

windows terminal+git bash 解決git-bash執行windows命令亂碼

在解決git-bash執行windows命令亂碼每次都要多輸入winpty,還是有點接受不了。 偶然的一次發現windows terminal+git bash 可以解決上述問題。

可以簡單理解 git-bash執行window命令輸出GBK字符集,交給windows terminal,windows
terminal支援GBK字符集,所以正常顯示 windows

terminal也支援UTF-8,所以git-bash自帶的linux命令輸出結果也同樣能夠被windows terminal解析
上述不一定對,沒去確認過

步驟:

  1. 安裝windows terminal + git bash
  2. 開啟windows terminal,輸入bash (PS: 這個步驟可以配置到windows terminal 的配置檔案中去,“startupActions”:“bash.exe”, 每次開啟自動執行)

解決:windows terminal git-bash ls 輸出中文亂碼

遇到的問題,根據上述windows terminal也支援UTF-8,所以git-bash自帶的linux命令輸出結果也同樣能夠被windows terminal解析

原理,ls輸出中的中文字元應該能夠正常被解析,但是還是亂碼

根據網上的資料:
開啟git-bash安裝目錄下的etc/bash.bashrc,在末尾新增:

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"