解決 cygwin 在 win10 下中文顯示亂碼的問題


在 win8 和 win10 上安裝了 cygwin 之后,在不做任何配置的時候,顯示目錄下的中文名稱的文件或者文件夾都是正常的。然后又嘗試了使用 rsync 命令將服務器的中文名稱文件同步到本地,服務器的編碼是utf-8,也是正常的。以前在 win7 同步服務器文件的時候需要在 rsync 命令中配上 iconv 選項指定字符編碼轉換,同步回來的中文名稱的文件才是正常。現在不需要配置了,挺好的。

但是用了一段時間之后就發現,使用 cygwin 自帶的命令窗口 mintty 執行 dos 命令的時候,中文顯示都不正常,都是亂碼,例如 ping、ipconfig 的時候。執行 dos 命令顯示不正常也問題不大,因為使用的不多。但是在使用 java 命令的時候,顯示亂碼就不好了,執行有誤都不知道怎么回事。例如直接輸入 javac 中文顯示出來的全是亂碼。

不過解決這個問題也比較簡單,跟在 win7 下配置流程一樣即可。

 

1. 首先是將 mintty Options 中的字符集編碼設置為 gbk 格式

 

2. 修改 cygwin 的配置文件 “.bash_profile”、“.inputrc” 相關屬性

可以通過兩種方式找到這兩個文件

  1. 直接打開cygwin 的安裝目錄,找到文件夾 home ,然后進入 home 目錄下的用戶文件夾。

  2. 直接使用使用命令行,先執行命令 “cd ~” 進入home 目錄,然后執行命令 “explorer .” 就打開了這兩個文件所在的目錄了。

 

2.1. 先在 .bash_profile 文件中添加以下配置:

export LC_CTYPE=zh_CN.GBK
export LANG=zh_CN.GBK
export OUTPUT_CHARSET=GBK
export XMODIFIERS=@im=Chinput3
stty cs8 -istrip
stty pass8
export LESSCHARSET=latin1

2.2. 然后在 .inputrc 文件中找到以下屬性,並且取消注釋

set meta-flag on
set convert-meta off
set input-meta on
set output-meta on

 

2.3. 執行 ls 的時候,顏色顯示的配置

alias ls='ls --color --show-control-chars'

 

 

最后重啟 cygwin 就可了,添加這些配置之后,rsync 同步服務器的中文名稱的文件的時候,服務器編碼跟本地編碼不一致的時候,還是需要添加 iconv 選項指定編碼。

 

按照這種方式配置之后,已知還存在的問題就是查看本地工程 git 庫的歷史的時候,中文還是無法正常顯示出來,如 git log ,這個還需要查一下原因。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM