Linux ファイルの文字コードを確認する

  • 作成日 2022.03.08
  • 更新日 2022.12.05
  • linux
Linux ファイルの文字コードを確認する

Linuxで、ファイルの文字コードを確認する手順を記述してます。「file」コマンドのオプション「-i」を使用すれば確認できます。

環境

  • OS CentOS Stream release 9
  • shell: /bin/bash

手順

ファイルの文字コードを確認するには、「file」コマンドのオプション「-i」を使用します。

実際に、文字コードを確認してみます

$ file -i docker-compose.yml

docker-compose.yml: text/plain; charset=us-ascii

文字コードが表示されていることが確認できます。

「docker-compose.yml」に日本語を追加して、再度確認してみます。

$ file -i docker-compose.yml
docker-compose.yml: text/plain; charset=utf-8

「UTF-8」に変わっていることが確認できます。
※マルチバイト文字を追加することで「文字コード」を指定することができます。

空のファイルの場合は「x-empty」となります。

$ file -i hoge.txt
hoge.txt: inode/x-empty; charset=binary

nkfコマンド

「nkf」コマンドを使用しても確認することは可能です。

$ nkf --guess hello.js

ASCII (LF)

「nkf」コマンドがない場合は、インストールすると使用できるようになります。

$ sudo dnf install nkf

「file」で同じファイルを確認した結果は、以下となります。

$ file -i hello.js

hello.js: text/plain; charset=us-ascii

文字コード変換

文字コードを変換する場合は「iconv」を使用します。

$ iconv -f 変換前の文字コード -t 変換後の文字コード 変換対象ファイル > 保存するファイル名

実際に「UTF-8」から「SHIFT-JIS」に変換した「sjis.yml」というファイルを作成してみます。

$ iconv -f UTF8 -t SHIFT-JIS docker-compose.yml > sjis.yml

確認してみます。
※「unknown-8bit」は「SHIFT-JIS」となります。

$ file -i sjis.yml
sjis.yml: text/plain; charset=unknown-8bit