我在Windows上使用vim
和gVim
,在虚拟Linux中使用vim
进行编程。我经常需要更改gettext
目录文件。但是,在两个Windows版本中对Unicode字符的支持似乎都不完整,可能是因为字符集。让Vim完全支持Windows上的UTF-8
例如,元音变音(äöü
)工作得很好;但排印引号(“”或“ˮ”)和其他一些字符(如mdash和ellipse)不会(它们在Linux中为做)。 Vim抱怨转换错误并以只读模式打开文件;当无论如何覆盖这个并且存储时,这些字符被破坏。
其他Windows程序支持这些字符很好,例如TortoiseSVN的。
请注意,这不是一个“错误的编码”问题,如latin-1
而不是utf-8
,因为这也会影响变音符号。我知道设置enc
,fenc
,fencs
和:e ++enc=utf-8
。 MS Windows 32位GUI版本支持OLE,包括更正1-46; +multi_byte_ime/dyn
。
更新:更新到Vim 7.4并没有解决问题。 +multi_byte_ime/dyn
,并且,因为选项现在更易读:+digraphs
,-xfontset
,-postscript
(我不知道他们是否感兴趣)。
由于我使用Linux Vim(仍然是7.3,包括更正1-547)处理相同的文件,并且通过Samba更新了Windows gVim,我尝试了以下操作:我打开了一个带有Linux版本的目录文件, (:set enc? fenc?
→ encoding=utf-8
,fileencoding=utf-8
),并将其保存为Latin-1(:set fenc=latin-1
(文件被标记为已更改),更新了标记:w
)。我收到了一个转换错误;然而,一些修改已经写好。
当使用相同的Linux版本重新打开文件时,我得到了正确的变音符号encoding=utf-8
/fileencoding=latin-1
,但引号字符不正确。
你的“编码”设置是什么?使用'utf-8'(并且文件格式相同),应该没有理由进行转换,因此不会出现这种错误。 –
我的文件保存为'utf-8'编码,特别是gettext目录('.po')。对于这些,编码包含在“Content-Type”头文件中(并且我希望用于编译到'.mo'文件)。 – Tobias