vim/gvimで日本語ファイルが文字化けするのは、大抵は以下のどちらかです。
Windowsの vim/gvimは内部エンコーディングのデフォルトが cp932なので utf-8でしか表示できない文字が含まれたファイルの場合は当然文字化けします。 この場合の対処としては、 vim/gvimの内部エンコーディングを utf-8にするしか有りません。 「vim/gvimのUTF-8化とファイルの文字コード自動認識」 ファイルエンコードの誤判定については vim/gvim固有の問題ではないのですが、文字エンコードの自動判定を設定していても使用している日本語文字種が少ない utf-8のファイルは cp932(Shift_JIS)と判定されることがあります。 例えばファイルの内容が "ああ" だけの BOM無し utf-8 のファイルなどは、他のエディタでも誤判定する場合があります。 Windows用エディタでは cp932を優先的に判定している場合が多いのでわりとよく見られます。 ("ああ" だけのutf-8ファイルが、cp932と判定されて "縺ゅ≠"として文字化けしている様子) :e ++enc=utf-8gvimならファイル(F)メニューからも読み込み直せます。 対処方法 vimの文字コードの自動判定は、fileencodings の順番に変換をしてみて、エラーが出なかったらそのファイルエンコードと見なす、という処理を行っています。"ああ" だけのBOM無し utf-8 ファイルは、cp932のファイルとしてみれば、人間の目からはおかしいですが文字コード列としては破綻していません。 "あああ" だと cp932の文字列としては破綻するので utf-8として認識されます。 主にutf-8のファイルを扱っていて、cp932と見なされるファイルが多いようなら、fileencodingsの順番をutf-8が先に来るようにしてやると解決します。 変更すると逆に cp932 のファイルが utf-8 と見なされる可能性は当然ありますので、扱うファイルのエンコードがどちらが多いかなどを考えてから変更して下さい。 順番はコマンドモードから確認できます。 :set fileencodings _vimrc(unixなら .vimrc) の 最終行に以下を追加すると、 utf-8優先になります。 " utf-8優先簡易版元の fileencodings の順番を考慮して cp932 と utf-8 の順番を置換するなら以下の通りになります。 " utf-8優先 |
