您的位置:首页 > 其它

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

2013-01-05 11:09 701 查看
一、 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个变量的设定值,出现乱码是正常的,倒是不出现乱码那反倒是凑巧的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: