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