V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fuxkcsdn
V2EX  ›  Vim

文件中只有英文的情况下, vim 保存为 us-ascii 编码,随便添加个中文再保存就是 utf-8,如何破?

  •  
  •   fuxkcsdn · 2015-08-02 22:24:52 +08:00 · 3432 次点击
    这是一个创建于 3402 天前的主题,其中的信息可能已经有所发展或是发生改变。
    .vimrc 文件如下
    set smartindent
    set tabstop=4
    set shiftwidth=4
    set expandtab
    set encoding=utf-8
    setglobal fileencoding=utf-8

    即使是手动输入
    :set encoding=utf8
    再保存,只要文件中没有中文,保存的就是 us-ascii 编码...

    vim 版本 7.2.411(CentOS 6.6) 和 7.3.547(Debian 7) 都测试过
    8 条回复    2015-08-19 09:26:46 +08:00
    carlosliu
        1
    carlosliu  
       2015-08-02 22:35:47 +08:00 via Android
    Nothing wrong. ASCII is a subset of UTF-8 encoding.
    niseceric
        2
    niseceric  
       2015-08-02 22:36:20 +08:00
    自动化编辑器识别就这样 utf8 兼容 ascii。。。 纯英文识别出来就是这样,又不是windows那个奇怪的utf8-bom头的。。。别在意
    niseceric
        3
    niseceric  
       2015-08-02 22:37:15 +08:00
    否则浏览器的自动化编码探测就不难写了,编码识别,这可是难题
    clino
        4
    clino  
       2015-08-02 22:42:01 +08:00
    嗯,1楼+1
    其实"us-ascii 编码"文件一定也是utf8文件
    lilydjwg
        5
    lilydjwg  
       2015-08-02 22:50:49 +08:00
    嗯 1 楼是对的。另外 set encoding=utf8 和文件编码没关系;它主要影响 Vim 界面。
    pysama
        6
    pysama  
       2015-08-03 10:30:37 +08:00
    我也遇到过这个问题,当时纠结了好久。
    个人感觉这是VIM一个小bug。

    比如我输入 :set fenc=utf-8 , 如果当前文档中没有中文字符,vim状态栏还是显示cp936. 但如果我用其他编辑器打开会发现这个文档已经是utf-8编码了。
    nekoyaki
        7
    nekoyaki  
       2015-08-03 10:53:31 +08:00
    @pysama 不是bug,这个选项就是不会立即刷新的,需要在打开文件之前使用才有用。
    xiaohanqing
        8
    xiaohanqing  
       2015-08-19 09:26:46 +08:00
    ASCII 不转成 utf-8 怎么保存中文!!!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5168 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:25 · PVG 09:25 · LAX 17:25 · JFK 20:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.