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

2015-08-02 22:24:52 +08:00
 fuxkcsdn
.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) 都测试过
3450 次点击
所在节点    Vim
8 条回复
carlosliu
2015-08-02 22:35:47 +08:00
Nothing wrong. ASCII is a subset of UTF-8 encoding.
niseceric
2015-08-02 22:36:20 +08:00
自动化编辑器识别就这样 utf8 兼容 ascii。。。 纯英文识别出来就是这样,又不是windows那个奇怪的utf8-bom头的。。。别在意
niseceric
2015-08-02 22:37:15 +08:00
否则浏览器的自动化编码探测就不难写了,编码识别,这可是难题
clino
2015-08-02 22:42:01 +08:00
嗯,1楼+1
其实"us-ascii 编码"文件一定也是utf8文件
lilydjwg
2015-08-02 22:50:49 +08:00
嗯 1 楼是对的。另外 set encoding=utf8 和文件编码没关系;它主要影响 Vim 界面。
pysama
2015-08-03 10:30:37 +08:00
我也遇到过这个问题,当时纠结了好久。
个人感觉这是VIM一个小bug。

比如我输入 :set fenc=utf-8 , 如果当前文档中没有中文字符,vim状态栏还是显示cp936. 但如果我用其他编辑器打开会发现这个文档已经是utf-8编码了。
nekoyaki
2015-08-03 10:53:31 +08:00
@pysama 不是bug,这个选项就是不会立即刷新的,需要在打开文件之前使用才有用。
xiaohanqing
2015-08-19 09:26:46 +08:00
ASCII 不转成 utf-8 怎么保存中文!!!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/210302

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX