• 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-8,gbk set termencoding=utf-8,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-8
    ②使用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-8859 text, with CRLF line terminators
    vi.utf8: UTF-8 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
  • 相关阅读:
    openstack nova 基础知识——Quota(配额管理)
    02python注释
    01使用Pycharm编写第一个python程序
    35Angular实现一个todoList
    34Angular实现搜索缓存数据功能
    33Angular实现人员登记系统(表单元件的双向数据绑定)
    32练习
    31封装一个网络请求的服务
    30服务(练习)
    29服务
  • 原文地址:https://www.cnblogs.com/xiaoxiaoxin-love-ping/p/4481330.html
Copyright © 2020-2023  润新知