sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

文字コード超研究 7章

文字コード「超」研究 改訂第2版

文字コード「超」研究 改訂第2版

前回の続き

7章 文字コード系の歴史総まくり

ISO 646系

  • ASCII - アメリカの情報交換用標準的符号 7bit
  • ISO 646 - ASCIIを国際化したもの。ASCIIの中のアメリカでのみ使われる12文字を、各国で自由に入れ替えて使うことを許容
  • JIS X 0201 - ISO 646の日本版。 \が¥、また、拡張して半角カナを使えるようにしている

EBCDEC系

ISO 2022系

94文字/96文字から成る、複数のコード表を、「エスケープシーケンス」という文字列で切り替える仕組み。

どんなエスケープシーケンスでどのコード表に切り替えるかは、国際機関に登録されている。

  • ISO 8859-1 - ISO 2022に準拠した、ヨーロッパ文字セットがISO 8859。その中の仏語や独語といった西ヨーロッパ語に対応したもの。
  • JIS X 0208 - 日本の文字コード体系。 ISO 2022に準拠しながら、漢字、ひらがな、全角カタカナを表現する為に、2文字分のコードを使って1つの文字を表現。 最大で94x94=8836文字収容することが可能。 JIS X 0208-1997で 6869文字。
  • JIS X 0212 - 1990年に制定された補助漢字コード系。JIS X 0208で足りない字が追加されている。
  • JIS X 0213 - 2000年に制定された。JIS X 0208を増強したもので、第3、第4水準漢字を含む。 JIS X 0212と一緒には使えない。 JIS X 0213:2004で辻の例示字形が一点之繞(シンニョウ)から二点に変更されたが、文字コード系は字形を定めるものではないとして議論となった。
  • EUC-JP - AT&Tが世界各地で制定したISO 2022準拠の局地版文字コードJIS X 0212まで対応しているが、JIS X 0201カナ(半角カナ)が2byteになるという欠点もある。Unixで広く利用されている。
  • ISO-2022-JP - ISO 2022に日本語をのせる為に、RFC 1468で定められたコード。半角カナは含まれない。

非ISO 2022系

ISO 2022では、7bitのうち94文字しか使えず、日本語や中国語のような多くの字を持つ言語にとっては効率が悪い。ローカルでのみやりとりを行う際には、もっと効率のよい独自規格を使おうという考え方もある。

  • Shift_JIS - 日本の標準ともいえる文字コード。Windows等で使われているのは、Shift_JISをベースに、各社が独自拡張したコード系(CP932等)。Shift_JISの名前の由来は、JIS X 0201をベースに、ローマ字+半角カナが使っていない領域に、JIS X 0208の漢字コードをShiftして押し込んだことからきています。0x80-0x9fまで使用しているため、ISO 2022準拠ではなくなっている。ローマ字、半角カナ、ひらがな、カタカナ、漢字が混在できて便利だが、制御コードが漢字コードの一部として紛れ込むので注意が必要。また、国際標準のISO 2022との変換が容易ではないといった難点もある。JIS X 0212の文字は使用できない。

ISO 10646/Unicode

ISO 10646と Unicodeは厳密には別のものではあるが、一般的には同じ物と見なされている。 世界中の文字に異なるコードを割り当てる事で、単一のコード表で世界の全ての言語をまかなおうという方針のコード系。 Unicodeでは、文字集合(Character Set)と文字コード系(Character Coding System)を厳密に区別する。

  • UCS-2 - 全世界の文字が、16bitで収まることを前提にした、駄目な文字集合
  • UCS-4 - 最上位ビットが常に0で、残りの31bitで定義される文字集合
  • UTF-16 - UCSで定義された符号化文字集合を、ディスクや通信回線に流す時に行う変換の方式の一つ。16bitのコードを1~2個使う。UCS-2に収まりきらない文字をUTF-16で表現する場合、16bitコード2個で一つの文字を表すサロゲートペアを使用する。 Unicode5.10で1,112,064個
  • UTF-8 - 8bitのコードを1~6個使う変換方式。ASCIIは1個、UCS-2は2文字、UTF-16なら1~4個、UCS-4なら1~6個と、ASCII文字圏ではデータ量が抑えられる。

こうやって改めて分類してみると、自分の知識の偏りと浅さがよくわかります。

次回へ続く