当前位置: 首页 > 知识库问答 >
问题:

在Windows上使用Vim打开UCS-2le文件

慕光霁
2023-03-14

我在WinXP上使用Vim 7.3。我使用由我工作的应用程序生成的XML文件,该应用程序使用UCS-2le编码编写它们。在vim wiki上阅读了几篇关于编码的文章后,我发现给出了以下建议,即在vimrc中设置我的文件编码:

set fileencodings=ucs-bom,utf-8

有问题的文件以FF EE为第一个字符(已确认使用HxD查看),但Vim无法正确打开它。我可以在我的vimrc中使用它正确打开我的UCS-2le文件:

set fileencodings=ucs-2le, utf-8

但是现在我的UTF-8文件一团糟!

有什么建议吗?我通常运行Gvim而不运行MSwin(如果这很重要的话)。我很少使用插件。我关于文件编码的实际vimrc设置是:

set encoding=utf-8
set fileencodings=ucs-bom,utf-8,ucs-2le,latin1

ucs-2le进入第三个位置似乎没有什么不同。据我所知,第一个条目(set encoding)是Vim在其缓冲区中内部使用的编码,而第二个条目(set fileencodings)处理Vim读写文件时的编码。因此,在我看来,由于文件有一个字节顺序标记,ucs bom作为setfileencodings中的第一个条目应该捕捉到它。据我所知,vim似乎不知道这个文件是每个字符16个字节。

注意:在打开ucs-2le文件时,我可以/确实通过手动设置文件编码来解决此问题:

edit ++enc=ucs2-le

干杯

共有1个答案

巢权
2023-03-14

解决了它。我不确定我做了什么,但注意到的修复现在可以很好地读取和写入我的UCS-2文件-尽管由于未知原因没有立即(我刚刚重新启动Vim吗?)。我可以尝试反转修复,看看哪一个是关键的更改,但以下是我所做的(另请参阅我在7月27日的评论):

  • 放置AutoFenc。我的插件文件夹中的vim插件(自动检测文件编码(AutoFenc.vim))

vimrc现在包含(最后一位只是通过在状态行中显示文件编码,更容易看到文件编码发生了什么):

"use utf-8 by default
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,ucs-2le,latin1

"always show status line
set laststatus=2

"show encoding in status line http://vim.wikia.com/wiki/Show_fileencoding_and_bomb_in_the_status_line
if has("statusline")
 set statusline=%<%f\ %h%m%r%=%{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\").\"]\ \"}%k\ %-14.(%l,%c%V%)\ %P
endif

一切都很好。

 类似资料:
  • 我们计划使用OpenLDAP进行用户管理,即:在OpenLDAP中维护的所有用户信息,从我们的Java web应用程序调用LDAP服务进行用户身份验证,稍后还计划使用ACL。我对OpenLDAP是完全陌生的,因此我有以下基本问题: > 在OpenLDAP网站上,它说OpenLDAP软件是平台无关的,适用于所有操作系统。但是,当我开始查看文档和FAQ(http://www.OpenLDAP.org/

  • vim如何打开一个文件 在windows下打开一个文件的指令是什么,如何查看文件位置~

  • 我刚刚下载并安装了Android Studio。不管什么原因,它都打不开。我试着以管理员的身份运行它,但这似乎也不起作用。我也尝试过卸载和重新安装,但仍然存在同样的问题。

  • 问题内容: 我有一个打开文件的Java应用程序。这在Windows上可以完美运行,但在Mac上则不能。 这里的问题是我使用Windows配置将其打开。代码是: 现在我的问题是在Mac中打开它的代码是什么?还是有另一种方法可以打开可在多平台上使用的PDF? 编辑: 我创建文件如下: 在循环中,我将它们添加到数组中: 如果我尝试使用Desktop.getDesktop()。open(file)从该数组

  • 我在Windows 10上使用Vim80。使用Netrw命令,默认情况下它会打开我的路径。我想在我的计算机上打开特定的磁盘驱动器,如使用netrw的。我在Stack Overflow上搜索了类似的问题,并找到了使用或的答案,但它不会更改默认目录。什么是netrw vim命令,使我能够更改我正在使用的驱动器?

  • 本文向大家介绍js打开windows上的可执行文件示例,包括了js打开windows上的可执行文件示例的使用技巧和注意事项,需要的朋友参考一下 创建htm文件把下面代码粘贴进去打开测试即可