Web教材一覧ハードウェアとソフトウェア

データの内部表現(文字列)

キーワード

ビット,バイト,語,情報交換用コード(文字コード体系,キャラクタ・セット),EBCDIC,ASCII,JIS漢字コード,第1水準漢字~第4水準漢字,シフトJISコード,EUCコード,Unicode


英語国では,英字(A-Z,a-z)と数字(0-9)で62個に,$や%などの特殊文字を加えても256個あれば十分(7ビット=128でも十分)ですから,1バイト(=8ビット)ですべての文字種が賄えます。逆に,1バイトで日本語を対応させるとなると,これにカタカナやひらがなを入れる(それを半角カタカナをあてていました)のがやっとで,漢字を入れることはできません。それで,漢字も含む日本語を用いるときは,2バイトで1文字を表すことにしています。例えば漢字の「亜」は,0100 0100 0101 1111 の16ビット列に対応づけられています。しかし2進法では長くなるので,これを4ビットずつに区切り,それを16進法で表現して(889F)のようにするのが通常です。 (図示)

どの文字にどのビット列を対応させるかの体系を情報交換用コード(文字コード体系とかキャラクタ・セットともいう)といいます。この体系がまちまちですと不便ですので標準化が行われていますが,歴史的な事情により現在ではいくつかの体系が並存しています。 (ポイント)

ASCII(アスキー)コード
ANSI(米国規格協会)が制定し,その後ISO(国際標準化機構)により,。細かい部分では両者の違いはありますが,国際規格ISO646になりました(それでISOコードともいいます)。7ビット系のコードです(パリティビットをつけて8ビット=1バイトにしていますが,コードとしては7ビットです)。最も広く用いられているコードであり,インターネットでの電子メールもこのコードが用いられています。
JISコード
JIS(日本工業規格)がISOコードに準拠して設定したもので,英数字だけ/カタカナだけを対象にした7ビットコードと,両者を含んだ8ビットコードのものがあります。 (JISコード表)



0000
(00)
0001
(10)
0010
(20)
0011
(30)
0100
(40)
0101
(50)
0110
(60)
0111
(70)
1000
(80)
1001
(90)
1010
(A0)
1011
(B0)
1100
(C0)
1101
(D0)
1110
(E0)
1111
(F0)
0000(00)
DE       
0001(01)SHD1    
0010(02)SXD2    
0011(03)EXD3    
0100(04)ETD4    
0101(05)EQNK    
0110(06)AKSN    
0111(07)BLEB    
1000(08)BSCN    
1001(09)HTEM    
1010(0A)LFSB    
1011(0B)HMEC    
1100(0C)CL    
1101(0D)CR    
1110(0E)SO    
1111(0F)SI_     
JIS漢字コード
JISコードに2バイトでの漢字を追加したものがJIS漢字コード(正式名称は「情報交換用漢字符号系」JIS X 0208)です。1バイトのASCIIコードと2バイトの漢字コードを識別するために,ASCII→漢字,漢字→ASCIIの切り替え部分にエスケープ・シーケンスという特殊文字を入れるのが特徴です。
第1水準漢字
約500字の記号、英数字、ひらがな、カタカナ等の非漢字と、約3000字の基本的な漢字を含む2956字。その読みがなで分類されています。例:亜(889F)~腕(9872)
第2水準漢字
人名、地名などの固有名詞に必要な文字や旧漢字など3388文字を加えた。漢字の部首によって分類されています。
第3/第4水準漢字
実際の出版物では第1/第2水準漢字だけでは,まだ人名や地名,異体字,記号などが不足しているので,非漢字659字,第3水準漢字1249字,第4水準漢字2436字が追加され,全体として1万あまりの文字種になりました。
現在、インターネット上で日本語を用いた電子メールの交換などには,このJIS漢字コードを元にしたISO-2022-JPが利用されています。
EBCDIC(エビシディック)コード
IBMが,それまで使われていた4ビットのBCDコード(2進法の数字を表すコード)を8ビット(これからバイトという概念が生まれました)に拡張して英文字などを加えたコードです。システム360と同時に発表し,その後の汎用コンピュータでの標準的なコードとして広く用いられています。日本では,さらにそれを2バイトに拡張して漢字も使えるようにしましたが,メーカーごとに異なるコード体系を持っていました。パソコンでは使われていません。
シフトJISコード
マイクロソフトにより開発されたコードで,WindowsやMacOSなど,パソコンで広く用いられているコードです。ASCIIと半角カタカナを継承してさらに漢字を混在させたコードで,文字の割付に工夫することにより,エスケープ・シーケンスなしに識別できるようにしています。
EUCコード
UNIXで広く用いられているコードです。特に日本語に適用させたものをEUC-JPといいます。半角カタカナよりもJIS漢字を優先させており,半角カタカナは補助的な扱いでプレフィックスという特殊文字をつけた2バイトになっています。
Unicode
上記のように多くのコードがあるのは困りますので,マイクロソフト,IBM,アップルなどのメーカーが,2バイト(16ビット)で世界中の文字を表現する新しい文字コードであるUnicodeを開発し,それを基にして国際規格(ISO 10646-1)になりました。日本ではJIS規格(JIS X 0221)になっています。
 最近のパソコンでは,Unicodeも取扱えるようになってきましたし,将来的にはこれで統一されるでしょう。Webページを記述する言語であるHTMLから発展して,商取引でのデータ交換に用いられるようになったXMLでは,既にこのUnicodeが標準になっています。