漢字コードについてインターネットで日本語を使用する際に用いられる文字コード (あるいは符号化方式)には、次の4つの種類があります。
「文字」というのは「字形」によって音や意味を表現するものですが、 それではコンピュータで扱いにくいので、 ある特定の言語や目的で使用する文字を集めて(文字集合)、 その一つ一つの文字に番号を振ります。 この番号を「文字コード(文字符号)」と言います。 日本語で通常使用する仮名や漢字を表す場合は JIS(日本工業規格)で規定されている JIS X 0208 という規格が通常用いられます。 これはいわゆる「区点コード」です。 ところが世界には日本語以外のいろんな言語や文字がありますから、 インターネットのようにそれらが混在する世界では、 日本国内で決めた文字コードが 他の国の文字コードと重なってしまう可能性があります。 そこで ISO(国際標準化機構)によって ISO 2022 という規格が規定され、 各国の独自の文字コードをこの枠組みに組み込むことによって、 複数の文字集合が混在できるようにしています。 「JIS コード (ISO-2022-JP)」は JIS X 0208 をこの枠組みで表現したものです (これに対して Unicode は、すべての国/言語の文字について 互いに重ならないように文字コードを決めた、単一の文字集合です)。 そういう点で「JIS コード (ISO-2022-JP)」は、 「異なるコンピュータ間で情報を交換するために規定された文字コードの標準規格」 であると言えます。 これに対して Shift-JIS コードや EUC は、 特定のコンピュータ(オペレーティングシステム)における、 文字コードの内部表現としての性格が強いと考えられます。 従って Shift-JIS コードや EUC は、 コンピュータネットワークを経由した情報交換に適しているとは言えません (全く不可というわけではありません)。 実際、電子メールやネットニュースでは、 メッセージや記事を JIS コードに変換してから送出しています。 ところがデータファイルそのものを読む人の方から「取りに来る」Web では、 このような考え方が浸透していません。 テキストファイルの文字コードには、 通常そのコンピュータの内部表現が用いられていますから、 Web では結果的に、コンピュータの内部表現として用いられている文字コードが、 そのままネットワークに流れ出ていることになります。 日本語に対応した Web ブラウザは、 Web ページに使われている文字コードが上のいずれであっても 表示できるようになっています。しかし Shift-JIS コードと EUC は完全に自動判別できない場合があり、 これが文字化けの原因となることがあります。 このため、システム工学部の Web サーバ (www.sys.wakayama-u.ac.jp) では、 HTML ファイルを送出するときに、その文字コードが EUC であると Web ブラウザ側に伝える設定をしています (charset=euc-jp)。 もし、他の文字コードで作成された HTML ファイルを置きたいときは、 そのファイルと同じディレクトリに .htaccess というファイルを作り、 中に次のうちのどれか1行を書いておいてください (そのディレクトリから下にある、 すべてのディレクトリのファイルが対象になります)。 AddType "text/html; charset=utf-8" .html AddType "text/html; charset=euc-jp" .html AddType "text/html; charset=shift_jis" .html あるいは次善の策ですが、 Web ページのヘッダ部で漢字コードの指定をするという方法もあります。 ただし、これはうまく機能しない場合もあります。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=x-sjis"> <meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp"> |