ubuntu 10.04 vi 与 gedit 打开文件显示中文乱码的解决方法

一、 gedit 打开文件显示中文乱码的解决方法

装好了Ubuntu 10.04后,打开部分Windows下的txt文本文件的时候,中文显示为乱码。但是自己用Gedit编写新文件的时候,输入的中文却可以正常显示,保存后再退出也可以正常显示。而且对于Windows下的文本文件,也不是全部含有中文的都显示为乱码。

整理下思路,如果真的是中文无法正常显示的问题,也就是字体设置问题,是不应该有文件能够正常显示中文的,应该全部乱码才对。而事实上并非如此,所以这个猜测可以排除。那么,会不会是文件编码的问题?Linux下默认的编码是UTF-8,而Windows下默认的编码是GB2312/GBK。难道是编码问题引起的问题?切换到Windows系统下,输入一段中文后,保存为UTF-8的txt文件,然后再另存同一个文件为GB2312编码格式。再次切换到Ubuntu 10.04下,打开这两个文件,果然GB2312编码的文件乱码了。

看来问题已经找到了,接下来就是解决问题了。其实问题的解决办法很简单,步骤如下:

1. 打开终端,在其中输入命令:

#gconf-editor

并回车。

2. 在新开的窗口里,在左边依次展开“apps”、“gedit-2”、“preferences”、“encodings”。如图所示:

配置编辑器 - encodings

3. 在右边的窗口里,双击“auto_detected”。

4. 在弹出的对话框里,单击“添加”按钮,输入“GB18030”并点击“确定“按钮。如图所示:

编辑键

5. 现在,这个对话框里的列表中的最下面多了一个“GB18030”的选项,然后选中他,点击右边的“向上”按钮,直到“GB18030”排到第一位。

6. 关闭这两个对话框,再次运行Gedit即可生效。

现在,GB2312/GBK/GB18030编码的文本文件中的中文文字终于不会显示乱码了。

 

二、  vi 打开文件显示中文乱码的解决方法

执行 sudo vi /etc/vim/vimrc
加入以下配置参数
   set fileencodings=utf-8,gb2312,gbk,gb18030,big5
   set termencoding=utf-8,gb2312,gbk,gb18030

 加入以上两行后,用vi 打开后代码中汉字部分显示正常。

vim编码方面的基础知识:

                 ——此处是vim编辑多字节编码文档(中文)所要了解的一些基础知识,注意其没有涉及gvim,纯指字符终端下的vim。

1. 存在3个变量:
encoding—-该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。你可以把 ‘encoding’ 选项当作是对 Vim 内部运行机制的设定。
fileencoding—-该选项是vim写入文件时采用的编码类型。
termencoding—-该选项代表输出到客户终端(Term)采用的编码类型。
2. 此3个变量的默认值:
encoding—-与系统当前locale相同,所以编辑文件的时候要考虑当前locale,否则要设置的东西就比较多了。
fileencoding—-vim打开文件时自动辨认其编码,fileencoding就为辨认的值。为空则保存文件时采用encoding的编码,如果没有修改encoding,那值就是系统当前locale了。
termencoding—-默认空值,也就是输出到终端不进行编码转换。

由此可见,编辑不同编码文件需要注意的地方不仅仅是这3个变量,还有系统当前locale、文件本身编码以及自动编码识别客户运行vim的终端所使用的编码类型3个关键点,这3个关键点影响着3个变量的设定。
如果有人问:为什么我用vim打开中文文档的时候出现乱码?
答案是不确定的,原因上面已经讲了,不搞清楚这3个关键点和这3个变量的设定值,出现乱码是正常的,倒是不出现乱码那反倒是凑巧的。

 

 


 

 

你可能感兴趣的:(ubuntu 10.04 vi 与 gedit 打开文件显示中文乱码的解决方法)