WinXP で Vim 7.3 を使用しています。私は、UCS-2le エンコーディングでファイルを書き込むアプリケーションによって生成された XML ファイルを使用しています。vim wiki でエンコーディングに関するいくつかの記事を読んだ後、次のアドバイスが与えられているのを見つけました。つまり、vimrc でファイル エンコーディングを設定することです。
set fileencodings=ucs-bom,utf-8
問題のファイルは先頭文字が FF EE となっているのですが(HxDで表示確認済み)、Vimでうまく開けません。vimrc でこれを使用して、UCS-2le ファイルを適切に開くことができます。
set fileencodings=ucs-2le, utf-8
しかし今、私の UTF-8 ファイルはめちゃくちゃです!
続行する方法についてアドバイスはありますか?私は通常、MSwin を動作させずに Gvim を実行します (それが重要な場合)。使用するプラグインはほとんどありません。ファイルエンコーディングに関する私の実際のvimrc設定は次のとおりです。
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,ucs-2le,latin1
3 番目の場所の ucs-2le のエントリは、違いがないようです。私が理解しているように、最初のエントリ (set encoding) は Vim がバッファ内で内部的に使用するエンコーディングであり、2 番目 (set fileencodings) は vim がファイルを読み書きするときのファイルのエンコーディングを扱います。したがって、ファイルにはバイトオーダーマークがあるため、 setfileencodings の最初のエントリとして ucs-bom がそれをキャッチする必要があるように思えます。私が知る限り、vim はこのファイルが 1 文字あたり 16 バイトであることを認識していないようです。
注:ucs-2leファイルを開くときにファイルエンコーディングを手動で設定することで、問題を解決できます/解決できます:
edit ++enc=ucs2-le
乾杯。