[A-00025]Viでファイルの文字コードを確認する。
viでファイルを開いた時に文字化けした経験はございませんか?
エディタの文字コードを確認するには下記のコマンドを使用します。
:set enc?
そしてファイルの文字コードを確認するには下記のコマンドを使用します。
:set fence?
しかし実際にはうまくいきません。下記の例ではSJISのCSVファイルをviで開き、ファイルのエンコードを確認した例です。
<83>C<83>E<83>G<83>I,<82>©<82>«<82><82>¯<82>±,<82>³<82>µ<82>·<82>¹<82>»
<91>¾<93><81><82>Â<82>Ä<82>Æ,<89>½<82>Ê<82>Ë<82>Ì,
<82>©<82>«<82><82>¯<82>±,<82>Í<94>ç<95><86><82>Ö<95>ñ<8d><90>
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
fileencoding=latin1
なのでファイルのエンコードを確認する場合はVSCodeなどで見た方が早いでしょう。
それを確認した上でviで文字コード指定してファイルを開き直す場合は下記のコマンドを使用します。
:e ++enc=sjis
実際にコマンドを実行したのが下記の例です。
<83>A<83>C<83>E<83>G<83>I,<82>©<82>«<82><82>¯<82>±,<82>³<82>µ<82>·<82>¹<82>»
<91>¾<93><81><82>Â<82>Ä<82>Æ,<89>½<82>Ê<82>Ë<82>Ì,
<82>©<82>«<82><82>¯<82>±,<82>Í<94>ç<95><86><82>Ö<95>ñ<8d><90>
~
~
:e ++enc=sjis
アイウエオ,かきくけこ,さしすせそ
太刀つてと,何ぬねの,
かきくけこ,は皮膚へ報告
~
~
"sjis.csv" [converted] 3L, 113B
上記の通り、うまく表示できるようになりました。
viも便利ですがそこまで優秀では無いのでこれらの作業は基本的にVSCodeなどで行った方が良いかもしれません。
コメントを残す