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

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

問題現象

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

初步解決

這個亂碼問題的緣由,是git經過diff正確輸出了文件差別,可是終端沒法正常顯示GBK。所以想到了能夠使用iconv對
輸出結果進行一次轉換來正常顯示,以下:優化

優化進階

上面處理的方法,一個是比價麻煩,每次都須要輸入很長的命令;另外一個是沒有高亮,很差看。
因此考慮使用系統alias來解決,帶參數的alias能夠採用以下寫法:編碼

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

以後就能夠愉快的使用快捷命令gdg顯示文件差別了:blog

相關文章
相關標籤/搜索