初學(xué)Linux,所以還是在用中文界面,經(jīng)常碰見(jiàn)中文亂碼的情況。下面是學(xué)習(xí)中碰見(jiàn)的常見(jiàn)幾種亂碼情況,經(jīng)過(guò)度娘的幫忙,通過(guò)實(shí)驗(yàn)整理得出解決辦法。
1、ssh或者telnet遠(yuǎn)程登錄時(shí)
查看環(huán)境變量LANG,改成中文編碼utf8,我試了一下en_US.utf8和zh_CN.utf8都可以,不知道這兩種編碼在哪有區(qū)別,并且設(shè)置SSH或者Telnet客戶端工具編碼,要保持一致
如常見(jiàn)的工具SecureCRT中設(shè)置:會(huì)話選項(xiàng)--外觀--字符編碼--utf8
2、圖形化窗口中的終端亂碼
就是我們用圖形化界面進(jìn)入linux,然后點(diǎn)擊進(jìn)入“終端”
這種最好解決,修改環(huán)境變量LANG即可,命令LANG=zh_CN.utf8,en_US.utf8也可以,只不過(guò)有些字顯示的效果不太一樣,有的大,有的字體不一樣
另外終端其實(shí)也是一個(gè)軟件,它的編碼也要和環(huán)境變量LANG的編碼要一致。在“終端”的菜單選項(xiàng)中有一個(gè)“終端”-“設(shè)定字符編碼”設(shè)置
3、VIM下亂碼
這個(gè)主要和兩個(gè)因素有關(guān):
一就是文件原始的編碼,原始編碼的設(shè)置是在VIM的配置文件里設(shè)置的
二終端有關(guān),比如我們?cè)诮K端顯示一個(gè)文件,cat /tmp/helloworld.txt,所以終端的編碼要和文本原始編碼要一致,設(shè)置同2
4、tty登錄
這個(gè)在網(wǎng)上百度了下,需要安裝中文接口軟件的支持,如zhcon,所以需要安裝相應(yīng)的軟件,這個(gè)我暫時(shí)還沒(méi)有實(shí)驗(yàn)過(guò),所以具體配置等我實(shí)驗(yàn)后給出
5、將man的內(nèi)容重定向
利用man,我們能夠查看到好多有用的信息,但是有時(shí)候想把man中的內(nèi)容保存在文本中,方便以后查看。
比如把iptables的信息保存在iptables.txt中:man iptables > iptables.txt
但是這樣操作的結(jié)果有時(shí)候卻差強(qiáng)人意,有好多亂碼,解決的辦法是:man iptables | col -b > iptables.txt
col的作用是將輸入的內(nèi)容進(jìn)行轉(zhuǎn)換過(guò)濾后輸出,-b就是不顯示回退鍵
6、從windows下拷過(guò)來(lái)的文本文件在Linux下出現(xiàn)亂碼之所以出現(xiàn)亂碼是因?yàn)閣indows下中文的編碼一般為gbk,而Linux下中文編碼一般為 utf8,所以在 windows下正常打開(kāi)的文件,到Linux下很可能出現(xiàn)亂碼。
解決辦法是:使用命令iconv對(duì)文本內(nèi)容編碼進(jìn)行轉(zhuǎn)換
iconv -f gbk -tutf8 原文本.txt > 新文本.txt
7、掛載U盤后,U盤中中文目錄名或文件名為亂碼
正常掛載:mount /dev/sdb1 /mnt/usb ,然后使用ls /mnt/usb發(fā)現(xiàn)U盤上中文目錄和文件名都是亂碼
解決辦法:在掛載時(shí)加上字符集參數(shù) mount -o iocharset=utf8 /dev/sdb1 /mnt/usb
以上為linux中文桌面系統(tǒng)亂碼問(wèn)題的解決,希望對(duì)你有所幫助!
新聞熱點(diǎn)
疑難解答
圖片精選