ubuntu终端显示乱码的解决
ubuntu終端顯示亂碼的解決
背景
在ubuntu終端,用diff命令比較兩個源文件時,發現輸出亂碼,如下圖所示:
原因
Ubuntu默認編碼是UTF-8,可以用locale命令查看,在我電腦上查看結果如下:
LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:en_US:en LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC=zh_CN.UTF-8 LC_TIME=zh_CN.UTF-8 LC_COLLATE="zh_CN.UTF-8" LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES="zh_CN.UTF-8" LC_PAPER=zh_CN.UTF-8 LC_NAME=zh_CN.UTF-8 LC_ADDRESS=zh_CN.UTF-8 LC_TELEPHONE=zh_CN.UTF-8 LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=zh_CN.UTF-8 LC_ALL=之所以會亂碼,是因為我用diff命令比較的文件(這個文件是在windows環境下創建的,而Windows操作系統的簡體中文默認編碼字符集是GBK,GBK向下兼容GB2312編碼)是GB2312的編碼,而不是UTF-8編碼。
UTF-8
UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字符的一種多字節編碼,它對英文使用1個字節,中文使用2~4個字節來編碼。UTF-8包含全世界所有國家需要用到的字符,是國際編碼,通用性強。
GBK
GBK是在國家標準GB2312的基礎上擴容后的標準,它兼容GB2312。GBK的文字編碼是用雙字節來表示的,即不論中、英文字符均使用雙字節來表示,為了區分中文,將其最高位都設定成1。GBK包含全部中文字符,是國家編碼。
關于字符編碼的知識,可以參考我的博文:
字符編碼的故事:ASCII,GB2312,Unicode,UTF-8,UTF-16
解決方法
解決方法有很多,這里寫出我用的方法。
考慮到UTF-8是國際編碼,通用性強,所以把GB2312編碼的文件轉換為UTF-8編碼的就OK了。
轉換工具是windows下的Notepad++;
Notepad++ is a free (as in “free speech” and also as in “free beer”) source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License.
這個軟件的下載地址是:
https://notepad-plus-plus.org/
下載好后,我們用Notepad++打開需要轉換的文件,在右下角會顯示出文件的編碼格式,比如:
我們選擇【格式】-【轉為UTF-8無BOM編碼格式】,然后保存即可。
至于為什么要轉換成無BOM,還是我剛才提到的那篇博文。祝學習愉快!
總結
以上是生活随笔為你收集整理的ubuntu终端显示乱码的解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序的加载和执行(四)——《x86汇编语
- 下一篇: java liste_内功心法 --