『求助』VIM的中文显示尽是乱码

53 views
Skip to first unread message

陈若涵

unread,
Feb 13, 2011, 11:22:19 PM2/13/11
to hzlug
其实好像这个问题在最近装好ubuntu10.10之后一直存在,电脑是thinkpad x201t,系统ubuntu10.10. 

locale看起来正常
 
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

终端输入中文、显示中文也正常 
crhan@TP-uBuntu: ~_003.png

vim中输入中文就乱码
[No Name] + - VIM_001.png

但是保存后,用gedit打开来显示仍然正确
Selection_002.png

不过有些中文字还是可以显示出来的,并不全都是乱码
vimrc (~) - VIM_004.png
vimrc (~) - gedit_005.png

接着,我把vimrc文件传到了服务器上,同样使用vim打开,显示正确
crhan@TP-uBuntu: ~_006.png

这让我何去何从那。郁闷

大家猜猜看是什么问题呢。。。。

-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!

vimrc (~) - gedit_005.png
crhan@TP-uBuntu: ~_006.png
Selection_002.png
[No Name] + - VIM_001.png
crhan@TP-uBuntu: ~_003.png
vimrc (~) - VIM_004.png

夏凯

unread,
Feb 13, 2011, 11:32:14 PM2/13/11
to hz...@googlegroups.com
LANG里面改成UTF-8,注意大写,不要漏了-,或者vi里面set tenc=utf8或者gbk。

> --
> 欢迎来到杭州Linux用户组邮件列表
> 要在列表里发起一个帖子(专业术语叫线索,thread) 发送邮件到 hz...@googlegroups.com
> 如要退订: 请发送空邮件至 hzlug+un...@googlegroups.com
> 详情请看: http://groups.google.com/group/hzlug?hl=zh-CN
>

--
从我的移动设备发送

contact me:
MSN: walk...@gmail.com
GTALK: walk...@gmail.com

邵志雄

unread,
Feb 13, 2011, 11:33:19 PM2/13/11
to hz...@googlegroups.com

vim里面有3个编码,
:set encoding
:set fileencoding
:set termencoding
设置对了就不会乱码

陈若涵

unread,
Feb 13, 2011, 11:42:05 PM2/13/11
to hz...@googlegroups.com
谢谢楼上的回答,,但是没有用啊。。。

@夏凯 我服务器上的locale跟本机的是一致的。。但是服务器显示正确,就是上面最后一张图
@shaozx 额,我都尝试了一下,把这三个设置成gbk和utf8,一点反映都没。。郁闷


-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/14 邵志雄 <sha...@gmail.com>

邵志雄

unread,
Feb 14, 2011, 12:30:14 AM2/14/11
to hz...@googlegroups.com
$HOME/.vimrc
加上下面两行
set fileencodings=cp936,utf8,latin1
set termencoding=en_US.UTF8

加完以后,打开中文文件试试
如果不行,再加一行
set encoding=cp936

如果还是不行,可能文件内容有乱码,用 iconv 检查一下

---------------------------------
google talk
sha...@gmail.com
---------------------------------

2011/2/14 陈若涵 <crha...@gmail.com>:

陈若涵

unread,
Feb 14, 2011, 12:40:56 AM2/14/11
to hz...@googlegroups.com
..看起来没救了,,,这个跟文件乱码关系不大,我觉得,,因为即使打开一个新的vim,编辑一个新的文件,就像第一张图片那样,,也会出现乱码

TualatriX

unread,
Feb 14, 2011, 12:43:42 AM2/14/11
to hz...@googlegroups.com
你这种乱码情况我似乎以前在一台共享主机上碰到过。

另外:LANGUAGE这个变量是什么值?

2011/2/14 陈若涵 <crha...@gmail.com>



--
Tualatrix Chou

http://imtx.me

邵志雄

unread,
Feb 14, 2011, 12:46:08 AM2/14/11
to hz...@googlegroups.com
从终端上找原因,终端里的,终端->设定字符集编码,看看有什么异样

---------------------------------
google talk
sha...@gmail.com
---------------------------------

2011/2/14 TualatriX <tual...@gmail.com>:

陈若涵

unread,
Feb 14, 2011, 12:46:36 AM2/14/11
to hz...@googlegroups.com
额额。。
LANGUAGE?

说的是bash的变量吗? 是空的。没有内容

-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/14 TualatriX <tual...@gmail.com>

陈若涵

unread,
Feb 14, 2011, 12:48:44 AM2/14/11
to hz...@googlegroups.com
终端的问题说不定可以排除,,因为你看我第一帖也有图,第一张图,,就是终端里面输入中文,成功显示的。

终端的设置字符集编码是UTF-8

陈若涵

unread,
Feb 14, 2011, 12:54:34 AM2/14/11
to hz...@googlegroups.com
vimrc (~) - VIM_007.png


真晕,我刚刚去vim.org下了源码编译了一个最新的7.3.119...结果还是不太正常,但是能够显示的多一些了。。。。这到底是啥问题啊晕

-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/14 陈若涵 <crha...@gmail.com>
vimrc (~) - VIM_007.png

yegle

unread,
Feb 14, 2011, 12:59:00 AM2/14/11
to hz...@googlegroups.com


2011/2/14 陈若涵 <crha...@gmail.com>
真晕,我刚刚去vim.org下了源码编译了一个最新的7.3.119...结果还是不太正常,但是能够显示的多一些了。。。。这到底是啥问题啊晕

先用enca判断下文件编码

陈若涵

unread,
Feb 14, 2011, 1:02:23 AM2/14/11
to hz...@googlegroups.com
@yegle 判断过。。是UTF8。。

$ enca -L none .vimrc
Universal transformation format 8 bits; UTF-8



不过这个文件显示错误只是表征额。。我想说的是,即使是新建的文件,vim中输入中文也是产生图中的输出。


-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/14 yegle <cny...@gmail.com>


2011/2/14 陈若涵 <crha...@gmail.com>
真晕,我刚刚去vim.org下了源码编译了一个最新的7.3.119...结果还是不太正常,但是能够显示的多一些了。。。。这到底是啥问题啊晕

先用enca判断下文件编码

--

yegle

unread,
Feb 14, 2011, 1:25:43 AM2/14/11
to hz...@googlegroups.com

2011/2/14 陈若涵 <crha...@gmail.com>
不过这个文件显示错误只是表征额。。我想说的是,即使是新建的文件,vim中输入中文也是产生图中的输出。

1、你的vimrc文件里是否有fileencoding或类似的设置
2、你的LANG环境变量是怎么设置的?
3、echo 测试 >testfile然后用vim打开testfile是否正常

陈若涵

unread,
Feb 14, 2011, 1:34:05 AM2/14/11
to hz...@googlegroups.com
@yegle 最最奇怪的现象还是,我编译安装了最新的vim之后,使用最新的vim或者老的vim,对中文的显示都变得比没有编译安装之前更好一些了,但是依旧有很多文字不能显示

  1. 我尝试过将.vimrc文件和.vim文件夹全部移走,然后再打开vim,没有改善
  2. LANG环境变量是默认的,'en_US.utf8',更具体的输出在第一帖有
  3. 这个指令输出的文件用vim打开正常,但实际只是因为这两个字勉强可以显示的关系,这两个字在vim里面输入已经看起来正常了,但是会在这两个字后面添加几个空格。测试`echo 啊哈哈>testfile`的结果见图
testfile (~) - VIM_001.png
crhan@TP-uBuntu: ~_002.png


-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/14 yegle <cny...@gmail.com>

--
testfile (~) - VIM_001.png
crhan@TP-uBuntu: ~_002.png

yegle

unread,
Feb 14, 2011, 1:41:11 AM2/14/11
to hz...@googlegroups.com


2011/2/14 陈若涵 <crha...@gmail.com>
  • 我尝试过将.vimrc文件和.vim文件夹全部移走,然后再打开vim,没有改善

看看vim --version的输出,里面有系统级vimrc的位置

你升级后情况有改善,可能是因为升级之后使用的系统级vimrc文件不同

OceanBoo

unread,
Feb 14, 2011, 1:53:35 AM2/14/11
to hz...@googlegroups.com
这一个问题有意思,看看最后到底怎么解决。


--
Thanks & Best Regards,
OceanBoo From ShenZhen,China

陈若涵

unread,
Feb 14, 2011, 2:17:55 AM2/14/11
to hz...@googlegroups.com
好像还是没法解决的样子。。google也没结果

-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/14 OceanBoo <ocea...@gmail.com>

TualatriX

unread,
Feb 14, 2011, 2:28:00 AM2/14/11
to hz...@googlegroups.com
试试其他终端,如Terminator,xterm等,看看是不是一样的行为。

2011/2/14 陈若涵 <crha...@gmail.com>
好像还是没法解决的样子。。google也没结果

陈若涵

unread,
Feb 14, 2011, 2:39:31 AM2/14/11
to hz...@googlegroups.com
也不行。。情况几乎更差了。。。


-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/14 TualatriX <tual...@gmail.com>
试试其他终端,如Terminator,xterm等,看看是不是一样的行为。
Tualatrix Chou

http://imtx.me

--

Vissible

unread,
Feb 14, 2011, 7:21:11 AM2/14/11
to hz...@googlegroups.com

set enc=utf-8
set fenc=utf-8
set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
这样设置下试试。
2011/2/14 陈若涵 <crha...@gmail.com>



--
QQ,MSN,GTALK: viss...@gmail.com


Atom Chen

unread,
Feb 14, 2011, 12:38:39 PM2/14/11
to hz...@googlegroups.com
这问题的确很奇怪。locale和vimrc看起来没什么异常。

fencs还是在vimrc中设置一下,这样可以自动识别转换编码。
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
endif
或者用Fencview(http://www.vim.org/scripts/script.php?script_id=1708

然后做一个实验。
分别打开三个文件,分别是ucs2 gbk big5编码,看看中文显示怎么样。

从截图上看,感觉有两个可能。
1.字体问题。
2.utf8 连续字节判断错误,即bad continuation of multi-byte UTF-8 sequence

crhan@TP-uBuntu: ~_006.png
vimrc (~) - VIM_004.png
crhan@TP-uBuntu: ~_003.png
[No Name] + - VIM_001.png
Selection_002.png
vimrc (~) - gedit_005.png

mathwuyue

unread,
Feb 14, 2011, 4:59:50 PM2/14/11
to Hangzhou (杭州) Linux User Group
dpkg-reconfigure locales,把zh_CN一系地选上~

> vimrc (~) - gedit_005.png
> 132KViewDownload
>
> crhan@TP-uBuntu: ~_006.png
> 177KViewDownload
>
> Selection_002.png
> 73KViewDownload


>
> [No Name] + - VIM_001.png

> 90KViewDownload
>
> crhan@TP-uBuntu: ~_003.png
> 99KViewDownload
>
> vimrc (~) - VIM_004.png
> 176KViewDownload

陈若涵

unread,
Feb 14, 2011, 6:53:21 PM2/14/11
to hz...@googlegroups.com
感谢大家的帮忙,,这个问题很诡异的解决掉了。

在xufan6的提醒下,我跑进root运行了vim,没有问题,然后把vimrc文件复制过来,出现了同样的问题(这与之前判断的相悖啊, (*#&¥)!@*&)。然后vimrc文件里的内容一行行注释,来检查问题。最后发觉问题是出现在@shaozx让我加上的encoding fileencoding和termencoding上,删除这三行就可以了。

但是,这也是最最最奇怪的事情。我本身没有这三行的时候显示也是不正确的!当时加上了这三行显示也没有变得更不正确。

接着,我又尝试恢复了最初的vimrc文件。一点问题都没有!

这个问题有点奇怪的,依旧无法解释。并且我使用的vimrc文件是以前就写好的,用过几个月,没有出过问题,这次好像是重装系统之后才发现的奇怪现象。


-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/15 mathwuyue <wuyu...@gmail.com>

邵志雄

unread,
Feb 14, 2011, 7:39:38 PM2/14/11
to hz...@googlegroups.com
2011/2/15 陈若涵 <crha...@gmail.com>:

> 感谢大家的帮忙,,这个问题很诡异的解决掉了。
> 在xufan6的提醒下,我跑进root运行了vim,没有问题,然后把vimrc文件复制过来,出现了同样的问题(这与之前判断的相悖啊,
> (*#&¥)!@*&)。然后vimrc文件里的内容一行行注释,来检查问题。最后发觉问题是出现在@shaozx让我加上的encoding
> fileencoding和termencoding上,删除这三行就可以了。
> 但是,这也是最最最奇怪的事情。我本身没有这三行的时候显示也是不正确的!当时加上了这三行显示也没有变得更不正确。

encoding fileencoding和termencoding还是值得深究一下的,这几个参数配置对vim乱码有非常大的影响

陈若涵

unread,
Feb 15, 2011, 10:19:24 AM2/15/11
to hz...@googlegroups.com
搞了半天到底是哪里出的问题,直到问题消失了都没找到,这才是最郁闷的地方


-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/2/15 邵志雄 <sha...@gmail.com>

--
Reply all
Reply to author
Forward
0 new messages