2007年04月03日

ISO−2022−JP符号化方法(EJ第2052号)

 PCを使う日本人ユーザがぜんぜん気にしていないことですが
コンピュータにおける日本語化は実にやっかいな問題なのです。
いろいろな工夫が施されて現在に至っていますが、その結果とし
て現在でも文字化けを完全には防ぐことができないでいます。
 このあたりのことを勉強しようとして、文字コードやフォント
に関する書籍を読んでみると、これが実に難解で、何度読んでも
わからないのです。
 現在、コンピュータで日本語を表示させるための文字コードと
して普及しているものには、次の3種類があるのです。これを名
前だけでもまず頭に入れておいてください。
―――――――――――――――――――――――――――――
         1.JISコード
         2.シフトJISコード
         3.EUC
―――――――――――――――――――――――――――――
 コンピュータを最初に開発し、ASCIIを定めた米国――そ
のため、インターネット・メールでは、7ビットのASCII文
字だけが文字化けしないできちんと送受信できる保証が与えられ
ているのが現状です。
 村井氏は、この事実を踏まえてJUNETコードを7ビットに
変換して送る方法を検討したのです。メールの中のASCII文
字はそのままにし、日本語――漢字とひらがなについてはすべて
7ビットのASCII文字に変換して送信する方法です。この変
換のことを専門的に「符号化(エンコード)」というのです。
 この村井氏の考案した方法は、次のように正式にRFC化され
ています。
―――――――――――――――――――――――――――――
     ISO−2022−JP符号化方法
     RFC−1468/1993年
―――――――――――――――――――――――――――――
 実は、このISO−2022−JPによって7ビット化された
文字コードが上記1の「JISコード」なのです。現在、インタ
ーネット・メールのほとんどが、このJISコードなのです。
 それを確認するために実験をしてみましょう。本文を次のよう
に書き、タイトルを「テスト」として、自分宛にメールを送って
いただきたいのです。
―――――――――――――――――――――――――――――
          タイトル:テスト
          本  文:ASCII漢字
―――――――――――――――――――――――――――――
 メールが着信した状態でそれをクリックして選択します。メー
ルを開かない状態でです。その上にマウスのポインタを置いて右
クリック。そうするとプルダウンメニューが出てきますので、一
番下にある「プロパティ(R)」をクリックします。
 そうすると「テスト」のウインドウが表示されます。ウインド
ウの「詳細」のタグをクリックし、「メッセージのソース(M)」
をさらにクリックし、画面を拡大してください。下の方に次のよ
うなメッセージが出てくるはずです。
―――――――――――――――――――――――――――――
        Content-Type: text/plain;
         format=flowed;
         charset="iso-2022-jp";
         reply-type=original
   ⇒    Content-Transfer-Encoding: 7bit
―――――――――――――――――――――――――――――
 この中に「7ビットで内容をエンコードしている」というメッ
セージがあるのを確認できると思います。ISO−2022−J
Pという文字も見えると思います。
 着信した他のメールでも同じ操作をやってください。7ビット
でエンコードのメッセージがないものもありますが、これはあま
りにも当然なこととして省略されているのです。
 さらにひとつ付け加えると、「テスト」文書の表示されたメッ
セージの一番下に、次のようなわけのわからない文字列が出てい
るはずです。
―――――――――――――――――――――――――――――
         $B!! (BASCII $B4A;z (B
―――――――――――――――――――――――――――――
 これは「ASCII漢字」がエンコードされた状態なのです。この
ようなかたちで送信され、着信時にデコードされ、メールの本文
に「ASCII漢字」として表示されるのです。
 しかし、JISコードの仕組みを簡単にいうと、漢字のコード
はASCIIとは別の場所に置いてあって、漢字が必要になると
きは、「エスケープ・シーケンス」という制御文字で切り替える
という方法をとっているのです。
 メールは上から順番に読んで行くものであり、エスケープ・シ
ーケンスで切り替える方法でもかまわないのですが、OSの内部
処理ということになると、メールのように順番に読むとは限らず
ランダムにデータをアクセスすることが多いのです。
 その場合、そのコードの並びが、1バイト文字なのか2バイト
文字なのかOSにはわからないので、直前のエスケープ・シーケ
ンスまで戻って確認するという面倒なことをしなければならない
のです。
 そこで、ちょうどMS−DOSの日本語化作業を行っていたア
スキー・マイクロソフト社では、MS−DOSの内部処理用コー
ドとして、ひらがなや漢字などの2バイト文字を1バイト文字と
重複しないコード領域にシフトさせた方法を採用したのです。こ
れが「シフトJIS」といわれるものなのです。
 「シフトJIS」は、現在のOSであるウインドウズでも使わ
れており、文書作成はシフトJIS、メールはJISコードが共
存しているのです。   
        ―― [インターネットの歴史 Part2/19]


≪画像および関連情報≫
 ・ISO−2022−JPについて
  ―――――――――――――――――――――――――――
  ISO−2022−JPは7ビットで表現されており、AS
  CII文字と漢字など、文字の切り換えには、エスケープ・
  シーケンスを用いている。2000年版では漢字が2ヶ所に
  分かれており、これもエスケープ・シーケンスで区別する。
  ISO−2022−JPは7ビットで表現されているため、
  欧米などで開発された8ビット目を無視する電子メールシス
  テムでも問題なく使用することができる。このため、電子メ
  ールでの日本語送受信はISO−2022−JPによって行
  なうことが事実上の標準となっている。
                     ――IT用語辞典
           http://e-words.jp/w/ISO-2022-JP.html
  ―――――――――――――――――――――――――――

R[h{.jpg
posted by 平野 浩 at 04:39| Comment(0) | TrackBack(0) | インターネットの歴史 Part2 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック