[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などで行った方が良いかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*