私はvimを使用してファイルの行末を変更することに慣れています:
$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators
同様のプロセスを使用してファイルのUnicodeエンコーディングを変更することは可能ですか?私は次のことを試みていますが、うまくいきません:
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
$ vim file
:set encoding=utf-8
:wq
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
私は 誰かが言う を見ました。「fileencoding = utf-8を設定してから、ファイルを更新して書き込むと動作します」が、何かが足りないようです。彼が「それから更新する」ことの意味がわかりません。
違いがあることに注意してください
エンコードの設定
そして
set fileencoding
最初のケースでは、ターミナルに表示される出力エンコーディングを変更します。 2番目のケースでは、書き込まれるファイルの出力エンコーディングを変更します。
Vimを使用してそれを行うことは完全に可能ですが、なぜiconvを使用しないのですか?つまり、エンコード変換を行うためだけにテキストエディタを読み込むと、小さすぎる爪には大きすぎるハンマーを使用しているように見えます。
ただ:
iconv -f utf-16 -t utf-8 file.xml > file.utf8.xml
これで完了です。
手順と同様に、fileencodingの設定は機能するはずです。ただし、編集者がファイルをUTF8であると見なすために、「爆弾のセット」を1つ追加したいと思います。
$ vim file
:set bomb
:set fileencoding=utf-8
:wq