歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> ubuntu vim中文亂碼問題

ubuntu vim中文亂碼問題

日期:2017/2/27 16:03:22   编辑:Linux教程
添加中文字符編碼:
$sudo vim /var/lib/locales/supported.d/local
#添加下面的中文字符集
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.GB18030 GB18030

使其生效:
$sudo dpkg-reconfigure locales

vim:
打開vim的配置文件,位置在/etc/vim/vimrc
在其中加入
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc

保存退出
source /etc/vim/vimrc

此時vim就能正確顯示中文了。

pdf:
$sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional #安裝pdf的中文字體
$sudo apt-get install poppler-data #安裝解決pdf中文顯示亂碼的軟件
$cd /etc/fonts/conf.d
$sudo cp 49-sansserif.conf 49-sansserif.conf_backup #先備份下
$sudo rm 49-sansserif.conf #刪除
在打開pdf文件,就能呢個正常顯示中文了

gedit:
gedit修改默認顯示字符集
$sudo gconf-editor
打開的界面中選擇apps->gedit2->preferences->encodings,添加需要的字符集並移動到最上方,保存就可以了。

設置默認的字符集
$sudo gedit /etc/environment
#第二行是默認字符集,設為zh_CH.UTF-8
LANG=zh_CH.UTF-8
LANGUAGAE="zh_CN:zh:en_US:en"
LANG=zh_CN.UTF-8 #不能選擇GBK或GB2312,終端界面中文會亂碼
LC_CTYLE=zh_CN.GB2312
GST_ID3_TAG_ENCODING=GB2312
$source /etc/environment使其生效

所有的字符集在/usr/share/i18n/charmaps目錄下

locale的書寫格式為:語言[_地域[.字符集][@修正值]]

方法2:
由於在新項目裡有到了一點點國際化的配置,用於在出錯提示,操作提示等方面的,發現在windows下能正常顯示出中文,但到了linux就不能顯示中文了.搜索一翻後說是linux的中文環境變量的問題故更改之:

在終端裡輸入:set
LANG=C
LANGUAGE=C

這是默認的語言編碼,如果要顯示中文的話就更將其更改為LANG=zh_CN,首先第一步:
#:~ cp /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/local

第二步:
vi /var/lib/locales/supported.d/local
編輯文件,刪除你不想要的語言系列.如我的只留en及zh系的

第三步:重新生成locale支持文件
sudo locale-gen --purge

第四步:設置locale文件,在終端裡輸入locale命令後回車,將顯示出來的內容復制,然後再打開/etc/environment文件,將內容粘貼末尾.保存退出.如我的是這樣的:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANGUAGE="zh_CN:zh:en_US:en"
LC_ALL=zh_CN.UTF-8
LANG=zh_CN.UTF-8
GST_ID3_TAG_ENCODING=UTF-8

LANG=zh_CN
LANGUAGE=zh_CN
LC_CTYPE="zh_CN"
LC_NUMERIC="zh_CN"
LC_TIME="zh_CN"
LC_COLLATE="zh_CN"
LC_MONETARY="zh_CN"
LC_MESSAGES="zh_CN"
LC_PAPER="zh_CN"
LC_NAME="zh_CN"
LC_ADDRESS="zh_CN"
LC_TELEPHONE="zh_CN"
LC_MEASUREMENT="zh_CN"
LC_IDENTIFICATION="zh_CN"

LC_CTYPE=zh_CN.UTF-8

然後退出重新登錄,在終端裡再輸入locale,會發現LANG=C已經更改為LANG=zh_CN.再查看下網站就可以成功顯示到中文了.

另,由於vi編輯器不太會用,在ubuntu servcr下還可以用pico這個編輯器來代替,至於最後發現,可能前面的一二三步都不需要做,只需要第四步即可完成.
linux 中文顯示亂碼解決辦法, 其實是有多種情況的, 有一部分是由於終端默認的設置造成的
vi /etc/sysconfig/i18n
將內容改為
LANG=”zh_CN.GB18030″
LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=”zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=”lat0-sun16″

這樣中文在SSH,telnet終端一般可以正常顯示了。

如果還是不行,可以這麼做:

1、console終端亂碼
在/etc/profile文件的最後一行添加如下內容:
export LC_ALL="zh_CN.GB18030"

2、xwindow終端亂碼
在/etc/sysconfig/i18n文件的最後一行添加如下內容:
export LC_ALL="zh_CN.GB18030"
Copyright © Linux教程網 All Rights Reserved