Cygwin 各種情況下中文亂碼--終極解決方案


0.引言

本人從進公司以來一直負責公司Android平台下產品的NDK開發,用的工具:

01. Google的adt-bundle(集成了eclipse和sdk)

02. NDK 

03. Cygwin

(PS:  雖然比較新的ndk版本,好像是從 r7開始就已經可以不用Cygwin了,

    但是本人從剛開始接觸Android NDK開發時就用的是Cygwin,在Window操作系統下足夠用了,

    作為懶人,既不想折騰到Linux下,又對命令行的操作比較留戀,所以就這么一直用着。高手請勿見怪。)

1. 窮

今天在做一個小測試的程序的時候,使用 javah 命令,想看一下有關 javah 的詳細幫助說明,突然發現那些中文說明都亂碼了。

話說當初剛裝 Cygwin 不久,在看代碼里面注釋的時候發現中文顯示亂碼,

當時隨便修改了 options 選項里面 Text 的 locale character set ,看能正常顯示了就沒再繼續折騰了。

想不到今天查看幫助文檔顯示的時候竟然又發現了亂碼,只好網上各種查找資料,親自實踐,不斷嘗試。。。

這次本人決定整理一份終極解決方案,一次性解決,永絕后患。

 

網上絕大部分都是相互轉載,內容翻來覆去雷同相似度很高,卻最終也也沒有一個完全解決各種情況的中文亂碼方案。

有的是文件注釋里面中文正常顯示了,但是很多英文倒變成了亂碼。(如命令“ls -l”中的total、man查看幫助的部分英文)

有的比較好的解決方案實現了命令幫助里面中文正常顯示,但是有些地方(比如 ls -la 顯示的文件日期)卻變成了英文。

2. 變

現在分享本人的完美終極解決方案:

2.1 界面設置

  非文本編輯狀態下,在界面上右鍵,選擇 options 選項里面 Text 的設置,

  Local 一欄選擇 C (或者選 Default 的話系統也會自動默認為 C), Character set 一欄選擇 GBK。如圖所示:

   

2.2 代碼配置

  1. 先 “ cd ~ ” 進入用戶目錄, 打開目錄下 .bash_profile 文件,在末尾添加如下幾行代碼:

  

 

  2. 在當前目錄下,打開 .inputrc 文件,找到有關 bash 命令對8 字節字符處理的代碼,去掉這句 set 前面的注釋符號(即前面的#號)。

 

  3. 在當前目錄下,打開 .bashrc 文件, 讓 ls 命令顯示中文和顏色,添加代碼如下:

  (其實經過本人實踐,發現這一步對中文亂碼的處理沒有影響,只是針對 ls 命令做的一個視覺顯示改進。不過確實看起來舒服多了。^_^)

3. 通

所謂 “ 窮則變,變則通。” 現在你會發現在這份終極方案處理下,Cygwin 已經完美支持各種情況下的中文顯示了。

各種情況例子截圖如下

1. ls -la 命令:

 

2. javah 命令

3. 查看代碼中的中文注釋

 

本文系本人原創,供各位學習交流,如有需要轉載請標注出處,並給出本原文鏈接。謝謝各位支持。^_^


免責聲明!

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



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