1.08.3基礎
UTF-8で保存されたinput.txtをISO-8859-1へ変換し、output.txtへ書き出す。
入力中の文字は変換先で表現可能とする。
適切なコマンドはどれか。
× 不正解
iconvは-f FROMで入力符号化、-t TOで出力符号化を指定する。
詳細解説
正しい
iconv -f UTF-8 -t ISO-8859-1 input.txt > output.txt-fで変換元、-tで変換先を指定する。
-f UTF-8で入力を解釈し、-t ISO-8859-1で変換したバイトをoutput.txtへ書く。
誤り
iconv -f ISO-8859-1 -t UTF-8 input.txt > output.txt変換元と変換先が逆である。
ISO-8859-1入力をUTF-8出力へ変換する逆方向の指定である。
誤り
iconv -t UTF-8 -f UTF-8 input.txt > output.txt入出力ともUTF-8で、ISO-8859-1へ変換しない。
変換元も変換先もUTF-8なので、ISO-8859-1の出力を作らない。
誤り
locale -f UTF-8 -t ISO-8859-1 input.txtlocaleはファイル内容の文字コード変換を行わない。
localeは環境のロケール情報を扱い、-f/-tでファイル内容を変換するコマンドではない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'Cafe
' | iconv -f UTF-8 -t ISO-8859-1 | od -An -tx1期待される結果
43 61 66 65 0a理解のポイント
- -fはfrom
- -tはto
- 表現不能文字はエラーになり得る
確認時の注意
- 確認環境: GNU libiconvまたはglibc iconv / ASCII範囲の標準入力のみ
基礎のおさらい
変換可能性
入力文字が変換先文字集合に存在しなければ、通常はエラーまたは指定方針に応じた損失が発生する。
リダイレクト
iconvは既定で標準出力へ書くため、> output.txtで結果ファイルを作る。
問題IDKL-102-1063
確認環境GNU libiconvまたはglibc iconv / ASCII範囲の標準入力のみ
最終技術確認2026-08-13
誤り・権利侵害を報告