win使用telnet到ubuntu下vim显示中文为乱码的解决方法~

1.几个路径:

ubuntu: /etc/default/locale  相当于 centos:/etc/sysconfig/i18n

vimrc的路径:① ~/.vimrc    ② /etc/vim/vimrc

2. 解决方法:

①添加语言支持

$sudo vim /var/lib/locales/supported.d/local#

添加下面的中文字符集zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.GB18030 GB18030
使其生效:$sudo dpkg-reconfigure locales
②vi ~/.vimrc(如果vi /etc/vim/vimrc的话,不知道为什么满屏都是高亮的屏蔽字 = =!)

set fileencodings=utf-,gbk
set termencoding=utf-,gbk (这里gbk是我自己添加的,因为使用的系统是xp,xp内部使用的编码为gbk,termencoding这个字段又是跟终端显示编码有关)
set encoding=prc

3.编码的基础知识 in case i forget this someday

Vim中有几个选项会影响对多字节编码的支持:
①encoding(enc):encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer、消息文字等。在 Unix环境下,encoding的默认设置等于locale;
Windows环境下会和当前代码页相同。在中文Windows环境下encoding的 默认设置是cp936(GBK)。
②fileencodings(fenc):Vim在打开文件时会根据fileencodings选项来识别文件编码,fileencodings可以同时设置多个编码,Vim会根据设置的顺序来猜测所打开文件的编码。
③fileencoding(fencs) :Vim在保存新建文件时会根据fileencoding的设置编码来保存。如果是打开已有文件,Vim会根据打开文件时所识别的编码来保存,除非在保存时重新设置fileencoding。
④termencodings(tenc):在终端环境下使用Vim时,通过termencoding项来告诉Vim终端所使用的编码。

Vim中的编码转换
Vim内部使用iconv库进行编码转换,如果这几个选项所设置的编码不一致,Vim就有可能会转换编码。打开已有文件时会从文件编码转换到encoding所设置的编码;
保存文件时会从encoding设置的编码转换到fileencoding对应的编码。经常会看到Vim提示[已转换],这是表明Vim内部作了编码转换。
终端环境下使用Vim,会从termencoding设置的编码转换到encoding设置的编码。
ps:可以用|:help encoding-values|列出Vim支持的所有编码。

4. 改变已存在文件的编码方法:

① 比如将GBK的格式转换成utf-8格式:
方法:先打开文件,使用命令::set fileencoding=utf-
②使用iconv命令:
[root@www ~]# iconv --list
[root@www ~]# iconv -f 原本编码 -t 新编码 filename [-o newfile]
选项与参数:
--list :列出 iconv 支持的语系数据
-f :from ,亦即来源之意,后接原本的编码格式;
-t :to ,亦即后来的新编码要是什么格式;
-o file:如果要保留原本的档案,那么使用 -o 新档名,可以建立新编码档案。 范例一:将 /tmp/vitest/vi.big5 转成 utf8 编码吧!
[root@www ~]# cd /tmp/vitest
[root@www vitest]# iconv -f big5 -t utf8 vi.big5 -o vi.utf8
[root@www vitest]# file vi*
vi.big5: ISO- text, with CRLF line terminators
vi.utf8: UTF- Unicode text, with CRLF line terminators
PS:引用自《鸟哥的私房菜》~~~

5.参考资料:

http://blog.chinaunix.net/uid-26808060-id-4338345.html
http://www.cnblogs.com/xkfz007/archive/2011/11/17/2252019.html
上一篇:SQL 生成一个日期范围


下一篇:sql生成连续日期(年份、月份、日期)