【 iconv 】コマンド――文字コードを変換する:Linux基本コマンドTips(46)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「iconv」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、文字コードを変換するための「iconv」コマンドを解説します。
iconvコマンドとは?
「iconv」は、ファイルなどのエンコーディング、いわゆる文字コードを変換するためのコマンドです。
使用できる文字コードは「iconv -l」で確認できます。なお、文字コードの指定は大文字でも小文字でも構いません。
書式
iconvコマンドの主なオプション
iconvコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-f コード | --from-code=コード | 入力のエンコーディング(文字コード) |
-t コード | --to-code=コード | 出力のエンコーディング(文字コード) |
-c | 変換できなかった文字を出力しない | |
-s | --silent | 対応していないなどで変換できなかった場合にエラーメッセージを表示しない |
--verbose | 処理中のメッセージ(ファイル名など)を表示する | |
-o | --output=ファイル | 保存先のファイル |
-l | --list | 対応しているコードを表示する |
文字コードを変換して表示する
「使用している端末はUTF-8だが、シフトJIS(Shift_JIS)で書かれたファイルを読みたい」という場合、例えば、「more」コマンドで表示するのであれば「iconv -f sjis ファイル名 | more」とします。デフォルトの出力はUTF-8なので指定は不要ですが、明示したい場合は「-t utf8」のように指定します。
コマンド実行例
iconv -f sjis -t utf8 sampletext.txt | more
(「sampletext.txt」をUTF-8で表示する)
文字コードを変換して保存する
iconvコマンドで文字コードを変換した結果を保存したい場合は、リダイレクトするか、「-o」オプションを付けて「-o ファイル名」と指定します。
コマンド実行例
iconv -f sjis -t utf8 sampletext.txt > utf8sampletext.txt
(「sampletext.txt」をUTF-8に変換して、「utf8sampletext.txt」として保存する)
画面2 iconvコマンドでUTF-8に変換して保存。catコマンドで表示できることを確認、また、fileコマンドでの判定も確認(※fileコマンドはファイル形式を表示するコマンド。本連載第12回を参照)
変換できない文字は無視して処理を続行する
iconvコマンドは処理ができない文字があると、そこで処理を中断します。中断せずに、読み飛ばして処理を続行させたい場合は、「-c」オプションを付けます。
コマンド実行例
iconv -c -f sjis -t utf8 marumoji.txt
(処理できない文字があっても中断せずに、処理を続行させる)
画面3 前出の画面1、画面2と同じ内容だが、「(1)」「(2)」「(3)」の部分に丸付きの数字が使われており、処理が中断する。「-c」オプションを付けると、丸付きの数字部分を飛ばして出力されるようになる
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.