原因:Linux顯示在Windows編輯過的中文就會顯示亂碼是由於兩個操作系統使用的編碼不同所致。Linux下使用的編碼是utf8,而Windows使用的是gb18030。因此,解決Linux打開txt文件中文亂碼可有如下方法。
方法一:使gedit支持gb18030格式的編碼
直接雙擊被打開的文件默認用gedit打開,這種方式不行。可行的方式 是先打開gedit ,再選擇軟件左上角打開出現亂碼的文件。gedit就會出現如下第一個圖的提示,在黃色區域左下角有個當前的編碼下拉框,點開可以自己選擇想要使用的編碼,如果已存在的編碼方式不能打開文件,可以選擇最后一項add。
然后就出現下面這張圖,在備選編碼中選擇文件的編碼格式,然后點擊左下角的+號,加入到右欄中以供選擇,然后點擊應用,就可以在下拉框選擇該文件的編碼了。一般情況下windows的編碼是gb18030,但也可能你打開的不是這個格式,怎么知道文件是什么編碼格式呢?可以在命令行執行"chardet3 test.txt ",test.txt是將要被打開的文件,返回結果包含文件編碼格式內容。
正常了。
備選方法:
gedit 使用一個編碼匹配列表,只有在這個列表中的編碼才會進行匹配,不在這個列表中的編碼將顯示為亂碼。您要做的就是將 GB18030 加入這個匹配列表。
- 命令行方式,適用於所有 Ubuntu 用戶。
復制以下命令到終端中,然后回車即可:
gconftool-2 --set --type=list --list-type=string /apps/gedit-2/preferences/encodings/auto_detected "[UTF-8,CURRENT,GB18030,BIG5-HKSCS,UTF-16]"
有可能你的系統已經沒有/apps/gedit-2/preferences/encodings這個節點了。
gedit升級版本之后,節點的位置可能改在了org/gnome/gedit/preferences/encoding。這里根據自己情況而定。下面圖形化方式也一樣。
- 圖形化方式,適用於 Ubuntu 用戶,而不適用於 KUbuntu/XUbuntu 用戶。
打開Terminal輸入命令“gconf-editor”,(如果沒有安裝的話,輸入命令安裝:sudo apt-get install gconf-editor ),進入環境配置,依次展開“/apps/gedit-2/preferences/encodings/”,然后點擊右上方的“auto_detected”,在彈出的頁面選擇添加gb18030並且向上置頂。設置完成以后所有打開的txt的文件中文顯示都不會亂碼了。如圖所示:
參考:https://blog.csdn.net/samantha_sun/article/details/6347645
方法二:將文件編碼方式改為linux支持的格式utf8
把gb18030編碼的original.txt轉換成utf8的target.txt。這樣target.txt就成為Linux支持的編碼。如果你並不是想要支持那種編碼,只是臨時使用,則可以將文件編碼格式轉換成linux系統支持的格式,以gb18030轉換成utf8為例:
打開Terminal,進入到txt文件所在目錄,輸入命令:
$ iconv -f gb18030 -t utf8 original.txt -o target.txt