ubuntu终端显示乱码的解决
ubuntu終端顯示亂碼的解決
背景
在ubuntu終端,用diff命令比較兩個(gè)源文件時(shí),發(fā)現(xiàn)輸出亂碼,如下圖所示:
原因
Ubuntu默認(rèn)編碼是UTF-8,可以用locale命令查看,在我電腦上查看結(jié)果如下:
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=之所以會(huì)亂碼,是因?yàn)槲矣胐iff命令比較的文件(這個(gè)文件是在windows環(huán)境下創(chuàng)建的,而Windows操作系統(tǒng)的簡(jiǎn)體中文默認(rèn)編碼字符集是GBK,GBK向下兼容GB2312編碼)是GB2312的編碼,而不是UTF-8編碼。
UTF-8
UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國(guó)際上字符的一種多字節(jié)編碼,它對(duì)英文使用1個(gè)字節(jié),中文使用2~4個(gè)字節(jié)來編碼。UTF-8包含全世界所有國(guó)家需要用到的字符,是國(guó)際編碼,通用性強(qiáng)。
GBK
GBK是在國(guó)家標(biāo)準(zhǔn)GB2312的基礎(chǔ)上擴(kuò)容后的標(biāo)準(zhǔn),它兼容GB2312。GBK的文字編碼是用雙字節(jié)來表示的,即不論中、英文字符均使用雙字節(jié)來表示,為了區(qū)分中文,將其最高位都設(shè)定成1。GBK包含全部中文字符,是國(guó)家編碼。
關(guān)于字符編碼的知識(shí),可以參考我的博文:
字符編碼的故事:ASCII,GB2312,Unicode,UTF-8,UTF-16
解決方法
解決方法有很多,這里寫出我用的方法。
考慮到UTF-8是國(guó)際編碼,通用性強(qiáng),所以把GB2312編碼的文件轉(zhuǎn)換為UTF-8編碼的就OK了。
轉(zhuǎn)換工具是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.
這個(gè)軟件的下載地址是:
https://notepad-plus-plus.org/
下載好后,我們用Notepad++打開需要轉(zhuǎn)換的文件,在右下角會(huì)顯示出文件的編碼格式,比如:
我們選擇【格式】-【轉(zhuǎn)為UTF-8無BOM編碼格式】,然后保存即可。
至于為什么要轉(zhuǎn)換成無BOM,還是我剛才提到的那篇博文。祝學(xué)習(xí)愉快!
總結(jié)
以上是生活随笔為你收集整理的ubuntu终端显示乱码的解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序的加载和执行(四)——《x86汇编语
- 下一篇: java liste_内功心法 --