日本語文字コードの変換を行う・nkfコマンド †nkfコマンドを使用すると、文字コードの変換を行うことができます。 関連記事・関連資料 †UTF-8から各種日本語の文字コードに変換してみる †以下のようなUTF-8で作成した文字を格納したテキストファイルを用意しました。 $ cat aiueo-utf8.txt aiueo あいうえお kakikukeko かきくけこ sasisuseso さしすせそ tatituteto たちつてと 以降、このファイルを各種日本語文字コードに変換してみます。 UTF-8からSJIS †以下のコマンドによりShift_JISに変更されます。 cat 入力ファイル名 | nkf -s > 出力ファイル名 または、 nkf -s < 入力ファイル名 > 出力ファイル名 または、 nkf -s 入力ファイル名 > 出力ファイル名 実行例 $ cat aiueo-utf8.txt | nkf -s > aiueo-sjis.txt $ kcc -c aiueo-sjis.txt aiueo-sjis.txt: shift-JIS $ nkf -g aiueo-sjis.txt Shift_JIS 上記の-sオプションは出力の文字コードをShift_JISとして出力するように指定しています。 入力の文字コードも明示的に指定する場合は、以下のように-Wオプションを指定します。 cat 入力ファイル名 | nkf -W -s > 出力ファイル名 または、 nkf -W -s < 入力ファイル名 > 出力ファイル名 または、 nkf -W -s 入力ファイル名 > 出力ファイル名 実行例 $ nkf -W -s < aiueo-utf8.txt > aiueo-sjis2.txt $ kcc -c aiueo-sjis2.txt aiueo-sjis2.txt: shift-JIS $ nkf -g aiueo-sjis2.txt Shift_JIS SJISをUTF-8に変換 †上記のコマンドで作成されたaiueo-sjis.txtを使用してUTF-8に戻してみます。 $ nkf -wS aiueo-sjis.txt > aiueo-utf8-2.txt $ diff aiueo-utf8-2.txt aiueo-utf8.txt EUCやJISに変換する方法 †EUC関しては以下のようになります。 nkf -e 入力ファイル > 出力ファイル または、 nkf -e < 入力ファイル名 > 出力ファイル名 または、 nkf -e 入力ファイル名 > 出力ファイル名 実行例 $ nkf -e aiueo-utf8.txt > aiueo-euc.txt $ nkf -g aiueo-euc.txt EUC-JP JISに関しては以下のようになります。 尚、以下の構文は入力文字コードを明示的に指定していない例になります。 nkf -j 入力ファイル > 出力ファイル または、 nkf -j < 入力ファイル名 > 出力ファイル名 または、 nkf -j 入力ファイル名 > 出力ファイル名 実行例 $ nkf -j aiueo-utf8.txt > aiueo-jis.txt $ nkf -g aiueo-jis.txt ISO-2022-JP 改行コードの変換 †改行コードの変換オプションは以下の通りです。
実際に改行コードも変換してみます。 入力ファイルは上記で使用したaiueo-utf8.txtを使用します。 $ cat aiueo-utf8.txt aiueo あいうえお kakikukeko かきくけこ sasisuseso さしすせそ tatituteto たちつてと $ cat -v aiueo-utf8.txt aiueo M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J kakikukeko M-cM-^AM-^KM-cM-^AM-^MM-cM-^AM-^OM-cM-^AM-^QM-cM-^AM-^S sasisuseso M-cM-^AM-^UM-cM-^AM-^WM-cM-^AM-^YM-cM-^AM-^[M-cM-^AM-^] tatituteto M-cM-^AM-^_M-cM-^AM-!M-cM-^AM-$M-cM-^AM-&M-cM-^AM-( 以下の実行例は、UTF-8で改行がLFのファイルをSJISで改行がCRLFに変換したときの出力です。 オプション -Lw -cで改行コードをCRLFに変換するように指定しています。 $ cat aiueo-utf8.txt | nkf -s -Lw -c > aiueo-sjis-crlf.txt 変換後の確認です。 $ nkf -g aiueo-sjis.txt Shift_JIS catコマンドの-vオプションを使って特殊文字を表示するようにしています。 $ cat -v aiueo-sjis-crlf.txt aiueo^M M-^BM- M-^BM-"M-^BM-$M-^BM-&M-^BM-(^M kakikukeko^M M-^BM-)M-^BM-+M-^BM--M-^BM-/M-^BM-1^M sasisuseso^M M-^BM-3M-^BM-5M-^BM-7M-^BM-9M-^BM-;^M tatituteto^M M-^BM-=M-^BM-?M-^BM-BM-^BM-DM-^BM-F^M 他の改行オプションについての実行例は省略しますが、上記実行例の-Lw -c部分を入れ替えることにより動作がかわります。 nkfのオプション(抜粋) †詳細なnkfのオプションはmanコマンドにて確認して頂くとして、よく使うと思われるオプションを以下に記します。
|