DESIGN REMARKS [デザインリマークス]

文字コードについてのまとめ。

人間が扱う文字をコンピュータの処理に適した数値に対応させたものをキャラクターコードといいます。キャラクターコードには、言語ごとに符号化するものと、世界の全文字を1つの体系で符号化するものがあります。

 

欧文のキャラクターコード

 

ASCII

ASCIIは、「American Standard Code for Information Interchange」の略称で、米文アルファベット26文字や数字とコンピュータ向けの制御文字を含むキャラクターコードの1つであり、二進数7桁(7ビット)で表現される。7桁の二進数では、0~127までの128通りの値を表すことができる。128通りの数により、アルファベット26文字の大文字、小文字を合わせて52文字、数字の10文字、ハイフンやカンマなどの記号類を全て表現することが可能となっている。
例えば、大文字の「A」は65(二進数で1000001、十六進数で41)、「B」は66(二進数で1000010、十六進数で42)となっています。

 

ISO/IEC 8859-1

ISO/IEC 8859-1はラテン文字第一部として定められた文字を収録するキャラクターコードである。ASCIIを二進数8桁に広げ、倍となる256通りの値を使うことで、フランス語のç(セ・セディーユ)や、ドイツ語のÖ(オーウムトラウト)などの西ヨーロッパ圏の文字も収容している。

 

日本語のキャラクターコード

日本語で使用している文字は、ひらがな、カタカナ、漢字と多様であり、その数はアルファベットの比ではない。そのため、一文字を表現するのに二進数の桁数をASCIIよりも増やすなどして符号化している。

 

ISO-2022-JP(JISコード)

ISO-2022-JPは、ラテン文字、記号を含み、さらにひらがな、カタカナ、漢字を収めたキャラクターコードの1つである。特に電子メールにおいて使用されることが多い。
例えば「あ」は十六進数4桁(2バイト)で2422と表される。欧文文字の表現はASCII(1バイト)を用いる。ここで問題となるのは、連続した文字を2バイトずつで解釈するか、1バイトずつで解釈するかによって文字が変わってしまう点である。「あ」である2422を1バイト単位で解釈してしまうと24は「$」を、22は「”」を表すため、「あ」のつもりが「$”」と表現されることになる。このような事態を防ぐために、エスケープシーケンスと呼ばれる制御文字で2バイトごとに解釈する部分を挟み、2バイト単位で解釈する部分と1バイト単位で解釈する部分とを明示するようにしている。

 

Shift-JIS

Shift-JISは、エスケープシーケンスを用いなくても1バイト表現のASCIIと2バイト表現の日本語文字とを共存させているキャラクターコードである。2バイトで表す日本語文字の1バイト目をASCIIでは用いない十六進数81より大きい値を使うことで、ASCIIと日本語に部分の区別を明らかにしている。例えば「あ」は十六進数で82A0となっている。また、Shift_JISという名称は、IANA(Internet Assigned Numbers Authority)の登録名である。この他に、CP932(Microsoftコードページ932)というShift_JISを独自拡張した文字コードがあり、これはMS-DOSおよびWindowsにおける日本語コードページを表すものである。さらに、MacJapaneseという、Shift_JISを、Appleが独自に拡張した文字コードがあり、これはMacOSで取り入れられたものである。

 

EUC-JP

EUC-JPは、UNIXというOSで日本語を扱うために利用されているキャラクターコードの1つである。2バイトの日本語文字をASCIIとは重ならない、十六進数A0~十六進数FFだけの組み合わせで表現しているのが特徴である。例えば「あ」は十六進数でA4A2と表される。

 

世界共通のキャラクターコード

世界中で使用されている文字を単一ルールで符号化する方式にUnicodeがある。

 

UTF-8

Unicodeで表現される文字列をコンピュータ上で扱う際に使用するものである。Unicodeは、世界中の文字を1つの文字コード体系で扱おうとするもので、ISO/IEC 10646の一部である、UCS(Universal multi-octet coded Character Set)として標準化されている。これをコンピュータで扱う際の符号化方式として、UTF(UCS Transformation Format)が使用される。UTFは、バイト例に変換する方式のことで、複数あり、このうちUTF-8は8ビットの符号単位で表現されるものである。

 

キャラクターコードまとめ

名称 概要
ASCII 米文アルファベット26文字や数字とコンピュータ向けの制御文字を含むキャラクターコード
ISO/IEC 8859-1 ラテン文字第一部として定められた文字を収録するキャラクターコード
ISO-2022-JP(JISコード) ラテン文字、記号を含み、さらにひらがな、カタカナ、漢字を収めたキャラクターコード
EUC-JP UNIXというOSで日本語を扱うために利用されているキャラクターコード
UTF-8 世界中の文字を1つの文字コード体系で扱おうとするUnicodeやUCSで使用される符号化方式

 

言語コードについて

符号化ではないが、コンピュータ上で扱うテキストが何語であるかを表す表記として言語コードがある。言語コードは、ISO639によって、言語ごとにアルファベット2文字で定義されている。例えば日本語は「ja」、英語は「en」となっている。HTMLではlang属性に用いられる。また、言語と国は1対1ではないため、国コードと合わせて記述される形式も存在する。アメリカ英語は「en-US」、イギリス英語は「en-UK」である。日本語は日本でしか利用されないので、「ja-JP」のみとなっている。

 

 

 

 

 

 

 

 

 

 

 

モバイルバージョンを終了