UTF-8編碼終端下Git diff GBK編碼文件亂碼解決


UTF-8編碼終端下Git diff GBK編碼文件亂碼解決

問題現象

在Mac筆記本上喜歡使用iTerm2終端,配色比較漂亮養眼,同時考慮兼容性,默認終端環境編碼采用UTF-8編碼。
平時處理代碼時,會遇到使用GBK編碼的文件,這時使用默認的git diff命令,可以顯示出文件差異,但是由於編碼
差異,終端顯示出來是亂碼,如下:

初步解決

這個亂碼問題的原因,是git通過diff正確輸出了文件差異,但是終端無法正常顯示GBK。因此想到了可以使用iconv對
輸出結果進行一次轉換來正常顯示,如下:

優化進階

上面處理的方法,一個是比價麻煩,每次都需要輸入很長的命令;另一個是沒有高亮,不好看。
所以考慮使用系統alias來解決,帶參數的alias可以采用如下寫法:

alias gdg='git_diff_gbk() { git diff $@ | iconv -f gbk -t utf-8 | diff }; git_diff_gbk'

之后就可以愉快的使用快捷命令gdg顯示文件差異了:


免責聲明!

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



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