linux中字符亂碼解決方法介紹

linux中字符亂碼解決方法介紹

遠程登錄linux服務器用vim在終端下編輯查看文件經常會遇見各種中文亂碼問題。

做如下設置可基本解決vim中文亂碼問題

首先查看系統對中文的支持

locale -a | grep zh_CN

輸出樣例如下

zh_CN.gbk

zh_CN.utf8

vim 只能正確識別列表中的中文編碼文件,如需識別其他編碼類型的中文文件,則需要做系統升級

vi ~/.bash_profile

文件末尾添加

export LANG=”zh_CN.UTF-8″

export LC_ALL=”zh_CN.UTF-8″

在線視頻教程推薦:linux視頻教程

vim與編碼相關的參數:

1、eencoding,用于配置打開文件和保存文件的編碼,但只能有一個值,只適合少數文件都是同種編碼的環境,所以一般不使用

2、fileencodings, 從名字上看就知道是fileencoding的增強版,可以配置多種不同的編碼,常見的配置為,配置好之后,列表中的文本編碼只要合法,都能被vim正確 的讀取,建議配置:set fileencodings=utf-bom,utf-8,gbk,gb2312,gb18030,cp936,latin1

3、encoding,vim內部編碼,vim讀取文件之后,但并不以讀取文件的編碼來處理,而是會轉換成內部編碼的格式,這個編碼一般與操作系統相關,linux下utf-8居多,中文windows下則是gdk,建議配置:set encoding=utf-8?

4、termencoding,vim輸出的編碼,輸出指輸出到操作系統或命令終端等,默認與操作系統的語言編碼一致,如果使用linux命令終端,建議終端和linux系統配置相同的編碼,然后配置相同的termencoding,否則顧全了vim就顧不上shell,不過如果shell不存在中文名文件,則配置終端和 termencoding一致即可,對于windows,能自動的識別gbk和utf-8,不用特殊配置,建議配置:set termencoding=utf-8

5、fileformats,用于區分操作系統,主要是回車rn的區別,建議配置:set fileformats=unix,dos

常見的亂碼有以下幾種情形:

(1)將windows環境下的文件rz到linux下時文件出現亂碼

解決方案:

1、在rz之前使用notepad++將文件格式轉化為UTF-8無BOM格式或者ANSI編碼格式;

2、set encoding=utf-8;

(2)secureCRT或者xterm2編輯環境中出現亂碼,只需在會話選項中調節字符編碼為GB2312或者UTF-8

(3)當對日志文件進行vim編輯時出現亂碼,大多數情況下是因為日志文件的格式為GB2312。

解決方案:1.set encoding=GB2312;2如果方案1不起作用的話,調整secureCRT或者xterm2的編輯環境為GB2312

(4)wget下載文件名亂碼

解決方案:一般情況下加上–restrict-file-names=nocontrol,例如wget –restrict-file-names=nocontrol -m www.xxx.com/

(5)cat文件正常,vim文件不正常

解決方案:直接寫入/etc/vim/vimrc? ,最后一行加上

set fileencodings=gb2312,utf-8??

set fileencoding=gb2312??

set termencoding=utf-8??

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享