このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】文字コードの変換:iconvコマンド

文字コードの変換:iconvコマンド
文字コードは、文字をコンピュータ内部でビット列として表現する方法です。異なる文字コードを使用することで、同じ文字が異なるビット列として保存されます。これにより、異なるシステムやアプリケーション間でのデータのやり取りや表示において、文字化けが発生することがあります。
たとえば、ひらがなの「あ」は、シフトJISでは0x82A0、UTF-8では0xE38182として表現されます。こうした違いにより、異なる文字コードを使用するファイルを読み書きする際には、適切な変換が必要です。

そこで、文字コードの変換にはiconv
コマンドが使用されます。iconv
コマンドは、ファイルの文字コードを指定した形式に変換するツールであり、様々な文字コード間の変換を簡単に行うことができます。
例:ひらがなの「あ」の表現
文字コード | 表現 |
---|---|
シフトJIS | 0x82A0 |
UTF-8 | 0xE38182 |
主な文字コード
文字コード | 説明 |
---|---|
ASCII | 英数字や制御文字を7ビットで表現する。基本的な文字セット。 |
UTF-8 | 可変長エンコーディング。1〜4バイトで文字を表現。多言語対応が可能。 |
シフトJIS(SJIS) | 日本語の文字コード。2バイトで漢字などを表現。 |
UTF-8について
UTF-8は、多くのOSやアプリケーションで標準的に使用されている文字コードです。UTF-8は可変長エンコーディングで、多言語対応が可能であり、ASCIIとの互換性があります。
iconv
コマンドの概要
iconv
コマンドは、ファイルの文字コードを変換するためのツールです。特定の文字コードから別の文字コードに変換することで、異なるシステムやアプリケーション間でのデータ互換性を確保し、文字化けを防ぐことができます。
項目 | 説明 |
---|---|
構文 | iconv [オプション] [入力ファイル名] |
iconv
コマンドの概要主なオプションと説明
オプション | 説明 |
---|---|
-f | 入力文字コードを指定する |
-t | 出力文字コードを指定する |
-l, --list | 使用可能な文字コードの一覧を表示する |
-o, --output=ファイル名 | 出力ファイル名を指定する |
コマンドの使用例と解説
1.UTF-8で作成されたutf-8.txt
を作成する。
・「echo "こんにちは" > utf-8.txt
」コマンドを実行します。
user01@ubuntu-vm:~$ echo "こんにちは" > utf-8.txt
2.utf-8.txt
を表示する。
・「cat utf-8.txt
」コマンドを実行します。
user01@ubuntu-vm:~$ cat utf-8.txt
こんにちは
3.utf-8.txt
をシフトJISに変換し、shift-jis.txt
ファイルとして保存する。
・「iconv -f UTF-8 -t SHIFT-JIS utf-8.txt -o shift-jis.txt
」コマンドを実行します。
user01@ubuntu-vm:~$ iconv -f UTF-8 -t SHIFT-JIS utf-8.txt -o shift-jis.txt
このコマンドは、iconv
を使用して utf-8.txt
ファイルの文字コードを UTF-8 から Shift-JIS に変換し、結果を shift-jis.txt
ファイルに出力します。それぞれのオプションとパラメータの意味を下表にまとめます。
各部分の説明
部分 | 説明 |
---|---|
iconv | 文字コード変換を行うコマンド。 |
-f UTF-8 | 入力ファイルの文字コードを指定。ここでは UTF-8。 |
-t SHIFT-JIS | 出力ファイルの文字コードを指定。ここでは Shift-JIS。 |
utf-8.txt | 変換する元の入力ファイル。 |
-o shift-jis.txt | 変換後の出力ファイル名を指定。ここでは shift-jis.txt 。 |
4.shift-jis.txt
を表示する:文字化けしていることを確認する。
・「cat shift-jis.txt
」コマンドを実行します。
user01@ubuntu-vm:~$ cat shift-jis.txt
����ɂ���
5.shift-jis.txt
を適切に表示する。
・「iconv -f SHIFT-JIS -t UTF-8 shift-jis.txt
」コマンドを実行します。
user01@ubuntu-vm:~$ iconv -f SHIFT-JIS -t UTF-8 shift-jis.txt
こんにちは
このコマンドは、iconv
を使用して shift-jis.txt
ファイルの文字コードを Shift-JIS から UTF-8 に変換し、結果を標準出力(通常は端末)に表示します。それぞれのオプションとパラメータの意味を下表にまとめます。。
各部分の説明
部分 | 説明 |
---|---|
iconv | 文字コード変換を行うコマンド。 |
-f SHIFT-JIS | 入力ファイルの文字コードを指定。ここでは Shift-JIS。 |
-t UTF-8 | 出力文字コードを指定。ここでは UTF-8。 |
shift-jis.txt | 変換する元の入力ファイル。 |
6.演習で作成したファイルを削除する。
・「rm shift-jis.txt utf-8.txt
」コマンドを実行し、「ls」コマンドで削除されたかどうかを確認します。
この演習で作成したファイルを削除します。
user01@ubuntu-vm:~$ rm shift-jis.txt utf-8.txt
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
まとめ
項目 | 説明 |
---|---|
文字コード | 文字をビット列で表現する方法。 |
例 | ひらがなの「あ」はシフトJISで0x82A0、UTF-8で0xE38182。 |
主な文字コード | ASCII、UTF-8、シフトJIS |
UTF-8 | 多くのOSで標準的に使用される。 |
iconv コマンド | 文字コードの変換に使用される。 |
構文 | iconv [オプション] [入力ファイル名] |
主なオプション | -f (入力文字コード), -t (出力文字コード), -l (使用可能な文字コードの一覧を表示), -o (出力ファイル名) |
使用例 | utf-8.txt を作成し、シフトJISに変換してshift-jis.txt として保存する。 |
これにより、文字コードの管理と変換が容易になります。