漢字(文字コード)について

UNIX では漢字(全角文字/2バイト文字)の とり扱いが単純ではありません。 計算機で文字を扱うときには文字を16進数のコードであらわしますが、 コード化の方法には次の3つが主として用いられます。 UNIX の上では EUC コードが一般的に使われています。 IBM互換機や PC98 等の日本メーカーパソコン上で動く日本語 DOS では shift JISコードが使われています。

!!!注意!!!

半角カタカナを含むファイルを UNIX に持ち込むことは 絶対にやめて下さい。これらは MULE などの聰明なエディタさえもときに 混乱させ、完全には復元できないようなファイルを生成してしまうこと があります。



<漢字コードを意識するアプリケーション>

KTerm や 日本語に対応した VT100(98から使用している場合) などでは、日本語の出力コードを設定することができます。 ファイルの中身を catmore で 見る場合、その中で日本語が EUC で書かれているのに 出力コードが SJIS だと、正しく表示されません。 自分が使うコードを EUC などに統一しておき、 環境変数 LANG を ja_JP.EUC と設定して、 lessを使うようにすれば問題ないでしょう。


<漢字コードに関するツール>

nkf は漢字コードを変換します。 他にも kc, kcc などの変換ソフトも存在します。 nkf は DOS 上でも動くものがあり、 フリーウェアのqkc などとともに DOS 上での漢字変換を 行ないます。

例:漢字コードを EUC に変換する場合。

$ nkf -e filename >filename.euc
これは、ファイル filenameを EUC コードに変換し filename.euc に落します。 ただし、DOS 上での qkc はファイルを直接書き換えるので、 ">filename.euc"に相当する部分は必要ありません。

!!!注意!!!

くれぐれも nkf -e file>file というようなことはしないで下さい。 もとのファイル file が失われます。



<コード落ちの補正>

しばしば、メイルやニュースなどでコードの一部が欠落したために 文字化けがおき、nkf などでは解決できない ことがあります。このようなとき、 rjis, rsjis, rujis などのコマンドを用いるとかなり復元できることがあります。
$ rjis filename > filename.fix
などとします。


iohara@kusm.kyoto-u.ac.jp
yositomi@kusm.kyoto-u.ac.jp