【Linux】ファイルの文字コードを変換する[iconv]コマンドの使い方


この記事はプロモーションを含みます。

Linux

iconvコマンドを使用して、ファイルの文字コードを変換する方法を解説します。

はじめに

ここでは、iconvコマンドについて簡単に説明します。

iconvコマンドは、以下のようなファイルの文字コードを変換することが出来ます。
これら以外にも様々な文字コードに対応しています。
対応している文字コードについては後述します。

  • SJIS > UTF-8
  • UTF-8 > SJIS

また、文字コードを変換したファイルを保存することも出来ます。

iconvコマンドの使い方

iconvコマンドの書式は以下となります。

iconv オプション 変換元のファイル

では、iconvコマンドの最も基本的な使用例を見てみたいと思います。
例として、SJIS形式のファイルを、UTF-8環境で表示してみます。

まずは、文字コードを変換せずに、catコマンドでファイルを開いてみます。

[root@STKPUB002 workspace]# cat sample.txt
?H
  騫?p
      w @

UTF-8環境で、SJIS形式のファイルを開いているため、正しく表示されていません。
では、文字コードを変換しつつ、表示してみます。

[root@STKPUB002 workspace]# iconv -f sjis -t utf8 sample.txt
秋拓技術学院

文字コードが変換され、正しく表示されましたね。

オプションの一覧

iconvコマンドのオプションの一覧です。
ここに記載している以外のオプションは、コマンドのヘルプを見てみて下さい。

オプション説明
-f
--from-code=文字コード
読み込むファイルのエンコーディング(文字コード)
-t
--to-code=文字コード
出力するエンコーディング(文字コード)
-l
--list
コマンドで使える文字コードを表示する。
-o
--output=出力ファイル
文字コードを変換したファイルの出力先パス。
-?
--help
コマンドのヘルプを表示する。
-V
--version
コマンドのバージョン情報を表示する。

コマンドの使用例

iconvコマンドの使用例です。

文字コードを変換しつつ、ファイルを表示する

文字コードを変換しつつ、ファイルの内容を表示する方法を説明します。
例として、文字コードがSJISのファイルをUTF-8環境で表示します。

[root@STKPUB002 workspace]# iconv -f sjis -t utf8 sample.txt
秋拓技術学院

文字コードを変換して、別のコマンドに渡す

文字コードを変換したファイルの内容を別のコマンドに渡す方法を説明します。
ここでは、パイプを使用して、headコマンドに渡してみたいと思います。

まずは、普通にファイルの内容を確認してみます。

[root@STKPUB002 workspace]# iconv -f sjis -t utf8 sample.txt
1行目
2行目
3行目

次は、ファイルの内容をheadコマンドに渡し、先頭から2行目までを表示します。

[root@STKPUB002 workspace]# iconv -f sjis -t utf8 sample.txt | head -n 2
1行目
2行目

オプション[o]で変換したファイルを保存する

オプション「o」を使用することで、文字コードを変換したファイルを保存することが出来ます。

[root@STKPUB002 workspace]# iconv -f sjis -t utf8 sjis.txt -o ./utf8.txt
[root@STKPUB002 workspace]# cat utf8.txt
1行目
2行目
3行目

リダイレクトで変換したファイルを保存する

リダイレクトを使用して、文字コードを変換したファイルを保存することが出来ます。

[root@STKPUB002 workspace]# iconv -f sjis -t utf8 sjis.txt > utf8.txt
[root@STKPUB002 workspace]# cat utf8.txt
1行目
2行目
3行目

コメント

タイトルとURLをコピーしました