このページで解説している内容は、以下の 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.txt2.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として保存する。 |
これにより、文字コードの管理と変換が容易になります。
