翻訳された文字列を提供するオープンソースプロジェクトに貢献したいと思います。彼らの要件の1つは、投稿者がPOファイルのエンコーディングとしてUTF-8を使用する必要があることです。
LinuxでVIM 7.3を使用しています。VIMのエンコーディングがUTF-8に設定されていることを確認して、.poファイルを正しい方法で編集および保存できるようにするにはどうすればよいですか?
Vimが既存のファイルを読み取るとき、ファイルのエンコーディングを検出しようとします。ファイルを書き出すとき、Vimは検出したファイルエンコーディングを使用します(別の方法で伝える場合を除く)。したがって、UTF-8として検出されたファイルはUTF-8として書き込まれ、Latin-1として検出されたファイルはLatin-1として書き込まれます。
デフォルトでは、検出プロセスは粗雑です。 Vimで開いたすべてのファイルは、上部にUnicodeバイトオーダーマークが検出されない限り、Latin-1と見なされます。バイトオーダーマークのないUTF-8ファイルは、マルチバイト文字が単一文字ではなく文字シーケンスとしてバッファーに表示されるため、編集が困難になります。
さらに悪いことに、VimはデフォルトでLatin-1を使用してバッファー内のテキストを表します。したがって、UTF-8ファイルwithは、Latin-1へのダウンコンバージョンによってバイト順マークが破損します。
解決策は、内部でUTF-8を使用するようにVimを構成することです。これは実際にはVimのドキュメントで推奨されており、そのままでは構成されていない唯一の理由は、Vimが基本的にLatin-1エディターとして動作することを期待するユーザー間で大きな混乱を招かないようにするためです。
あなたの.vimrc
、 追加 set encoding=utf-8
とVimを再起動します。
または、代わりに
LANG
環境変数を設定して、UTF-8が優先文字エンコーディングであることを示します。これは、Vimだけでなく、LANG
を使用してテキストの表現方法を決定するすべてのソフトウェアに影響します。たとえば、テキストが英語(en
)で表示される必要があることを示すには、米国で話されているように(US
)、UTF-8(utf-8
)、 セットするLANG=en_US.utf-8
。
これでVimはバッファ内のテキストを表すためにUTF-8を使用します。さらに、ファイル内のUTF-8エンコーディングを検出するために、より断固とした努力をします。バイトオーダーマークを探すほかに、Latin-1にフォールバックする前に、バイトオーダーマークのないUTF-8もチェックします。そのため、UTF-8でコード化されたファイルが壊れることはなくなり、編集セッション中にUTF-8文字が適切に表示されるはずです。
Vimがファイルエンコーディングを検出する方法の詳細については、 Vimドキュメントのfileencodings
オプション を参照してください。
Vimが内部で使用するエンコーディングの設定の詳細については、 encoding
オプション を参照してください。
ファイルをディスクに書き込むときに使用されるエンコードをオーバーライドする必要がある場合は、 fileencoding
オプション を参照してください。