UNIXの操作/UNIXの応用/日本語コードの変換

4.6.1 日本語文字コード

コンピュータ上での日本語の文字コード(エンコーディング方法)はいくつかあり,コンピュータやアプリケーションの種類によって日本語の扱い方が異なります.またFTPmtoolsでのファイル転送では自動的に日本語文字コードを変換しないため,日本語文字コードをnkfコマンドを使って変換する必要があります.

次におもな日本語文字コードを挙げます.

  • ISO-2022-JP
    CNS のUNIX環境での標準となっている日本語文字コードです.また,メールやニュースなどを日本語テキストで送る際などに使われます.
  • MS漢字コード
    Shift-JISコードとも呼ばれます.Windows,Macintosh環境のコンピュータではこのコードを利用しています.
  • EUC-JP
    Extended Unix Code - JPの略です.多くのUNIXベースシステムの日本語がこの方式で扱われています.S言語とSASなどのアプリケーションで日本語を扱う場合は,この方式を利用します.

4.6.2 日本語文字コードを変換する -- nkf

CNS では,一部を除いてISO-2022-JPで日本語を扱うことになっていますが,WindowsやMacintoshなどではShift-JISが利用されています.例えば家のコンピュータからCNS にファイルを転送する場合など,日本語の取り扱いが異なるコンピュータ間で日本語テキストをやりとりするには,何らかの変換をする必要があります.

フロッピーディスクを使ってコピーする場合などには,文字コードが変換されないので,自分で文字コードを変換する必要があります.Emacsではどの文字コードであっても読み書きできるので,文字コードの種類を気にする必要はありませんが,LaTeXなどのように特定の文字コードでしか利用できないアプリケーションでは文字コードを変換する必要があります.CNS 環境で日本語テキストの文字コード変換を行うには,nkf (Network Kanji code convertionFilter)コマンドを用います.

%nkf [オプション] [変更前ファイル名] > [変更後ファイル名] <RET>

オプション

-e 変換結果をEUC-JPで出力する
-j 変換結果をISO-2022-JPで出力する
-s 変換結果をShift-JISで出力する
-u 変換結果のバッファリングを行わない


nkfコマンドは,入力ファイル名に指定されたファイルについては,3つのうちどのコードで日本語を扱っているかを自動的に判断するので,どのコードで出力するかをオプションで指定してください.

例えばCNS のEmacsで作成したファイル`cns.tex' (通常はISO-2022-JPとなっている)をフロッピーで持って帰って自宅のコンピュータ (Shift-JIS)で編集するときには次のように入力してください.

% nkf -s cns.tex > dyna.tex<RET>
% _
これで,`cns.tex'が,Shift-JISに変換され,`dyna.tex'という名前で保存されます.またEmacsを利用しても漢字コードの変換ができます

nkfコマンドを使って文字コードを変換するとき,変更前と変更後のファイル名を同じにすると,ファイルの内容が空になるので注意してください.

4.6.3 改行コード

WindowsやMacintoshで作成したファイルをUNIXで編集する場合には,次のようにして改行コードを変更します.

% tr -d '\015' < [Windowsのファイル] > [UNIXのファイル]<RET>
% tr -d '\015' '\012' < [Macintoshのファイル] > [UNIXのファイル]<RET>