日期:2014-05-16  浏览次数:20582 次

请教linux下编码的麻烦事情
一直对linux下的utf-8抱有一种恐惧心理。
(1)export LANG=XXX
(2)修改/etc/sysconfig/i18n 然后重启
(3)iconv系列(包括函数和命令行)

以上三种有什么区别。


最近在做一个文本转换工具,同一个文件在windows下如果另存为utf-8的文件,在linux下运行工具则没问题。
但在vi下编辑一个文件,运行工具结果有汉字乱码。(注:fonts字体库已经正确安装,这个是另一问题,已经解决)

我想问的是,linux默认就是utf-8,为何还会出问题,它和windows的另存为utf-8为何有区别?
LANG可以是 zh_cn.utf-8 也可以是 us.uft-8还有其他,难道不都是utf-8吗?


附带问一句,怎么样可以让source insight里和vim同时没有汉字乱码,一直含含糊糊,通常都是先拷贝到记事本然后粘贴到写字板。

------解决方案--------------------
我在LINUX和WINDOWS的共享目录下编程,尽量少使用VIM
------解决方案--------------------
探讨
LANG可以是 zh_cn.utf-8 也可以是 us.uft-8还有其他,难道不都是utf-8吗?

------解决方案--------------------
如果linux下使用vim打开没乱码,然后进行编辑后,运行出现部分乱码,则保存的格式不是utf-8.
需要在编辑完成后存储时设置
:set fileencoding=utf-8
试试,还有保证运行的环境也是utf-8;

如果运行后打开文件全部乱码,则要设置打开的文件工具采用utf-8编码
------解决方案--------------------
在/etc/bashrc里export LANG=en_US.utf-8
------解决方案--------------------
直接把你linux的默认编码改成和windows一样的GB就不麻烦了。