Tips 文字コードの設定

日本語のホームページの中に、ブラウザによっては文字化けを起こすものが少なくありません。そんなトラブルを防ぐ意味でも言語設定は必須です。

使える日本語の文字符号セット
インターネット上で日本語を扱う際には、現在3種類の文字セットが使われています。
ISO-2022-JP
通信に使用するため、ASCIIコードと同等の7ビットコードとして設計されています。 (メールを中継するSMTPは、もともと ASCIIコードを通すことだけを念頭に置いていたため、7ビット仕様になっていました。) 「JISコード」と呼ばれている文字セットは、もっぱらこれを指しています。
ただし、ISO-2022-JPJISそのものではなく、ASCIIJIS X 0201のローマ字と JIS X 0208の1978年版と1983年版を切り替えて使う方法を指しています。JISにもたくさん種類があるわけです。
Shift_Jis
別名「MS漢字」とも呼ばれており、日本のパーソナルコンピュータで広く使われている8ビットコードです。上記の ISO-2022-JPは、7ビット+7ビットの構成になっているのですが、この Shift_Jisは半角カナ文字などを収めるため、8ビット+8ビットの構成に振り直してあります。「JISコードの表上の位置をずらしてつくったコード」という意味で、シフトJISの名があります。
なお、SMTPの機能拡張版である ESMTPは問題なく8ビットコードを通しますが、SMTPは7ビットコードしか通さないので、8ビットコードを7ビットコードに書き直さないかぎりメールの文字情報が欠落することになります。このため、電子メールでは ISO-2002-JP が一般的に用いられています。
EUC-JP
UNIX上で日本語を扱うために開発された8ビットコードです。HTTPサーバの多くは UNIXで動いているので、CGIプログラム等で日本語を処理する際にこれが使われます。
インターネットにおける言語の管理は、IANA(Internet Assigned Number Authority) という組織が行っています。IANAはインターネット上で利用されるアドレス資源(IPアドレス、ドメイン名、ポート番号など) の標準化や割り当てを行っていた ISOCの下部組織で、現在は ICANNの下部組織へと位置付けが変更されています。実際の業務は引き続き各国の下部組織が担当しています。
以下は、IETFにおける RFC1468 による日本語文字コード事項です。
 [RFC1468,Murai]
Name: ISO-2022-JP  (preferred MIME name)              
MIBenum: 39
Source: RFC-1468 (see also RFC-2237)
Alias: csISO2022JP

Name: Shift_JIS  (preferred MIME name)
MIBenum: 17
Source: A Microsoft code that extends csHalfWidthKatakana to 
        include kanji by adding a second byte when the value 
        of the first byte is in the ranges 81-9F or E0-EF.
Alias: MS_Kanji 
Alias: csShiftJIS

Name: Extended_UNIX_Code_Packed_Format_for_Japanese
MIBenum: 18
Source: Standardized by OSF, 
        UNIX International, and UNIX Systems
    Laboratories Pacific.  Uses ISO 2022 rules to select
        code set 0: JIS Roman (a single 7-bit byte set)
        code set 1: JIS X0208-1990 (a double 8-bit byte set)
                    restricted to A0-FF in both bytes
        code set 2: Half Width Katakana(a single 7-bit byte set)
                    requiring SS2 as the character prefix
        code set 3: JIS X0212-1990 (a double 7-bit byte set)
                    restricted to A0-FF in both bytes
                    requiring SS3 as the character prefix
Alias: csEUCPkdFmtJapanese
Alias: EUC-JP  (preferred MIME name)
日本語文書文字セットの指定方法
日本語文字セットを指定する場合は、ヘッダ部の head要素内で設定します。自分が使う文字セットを選び、下記サンプルのように記述します。一般的なパソコンであれば「shift_jis」を採用しています。これが UNIX系OSなると「euc-jp」となります。HTMLファイルをどの符号化方式 (character encordings) に従がい、記述の仕方によって、読み込む側もそれに合わせる必要があります。HTMLファイルを書いて、公開している責任をとる意味でも、この文字コードを必ず指定するようにしましょう。 (通常はユーザエージェントが自動的に認識します)
時折、「x-sjis」というのを見かけます。「shift_jis」が本来なのですが、この違いはありませんが、正式には「shift_jis」です。「x-jis」は、Netscape Navigater 2.0 で採用されていたため、後者が普及してしまい、本来規定されている「shift_jis」の存在が小さくなってしまいました。
Netscape のシェアは激減しているにもかかわらず、未だにこの状況は変わっていません。現在のブラウザは両方認識することもあって、なかなか「shift_jis」への移行がなされないようです。


This Page is HTML4.01 Valid! 初版公開日 2002年5月28日   最新更新日 2004年3月13日
Copyright(C) 2002〜2008 banban