教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows

 

 

文字集合(CCS)と符号化方式(CES)とは

 

 

 

 

 


 

 

 

「文字コード、文字集合、符号化方式の違いが分からない」「Unicode、Shift-Jis、JISX0208って何」といったご質問をいただくことがありますので簡単にご紹介します。


 

■文字コードとは

文字コードとは、文字1つ1つに割り当てている番号(符号位置)のことです。この「番号と文字の対応表 」を文字集合(キャラクターセット)といい、日本語用の集合、ドイツ語用の集合…などがあります。日本語を扱うならJISX0208、JISX0213、UNICODEと いった集合を使います。さて、これら文字集合により字のコードは認識できますが(あ=3042のように)コンピュータは0と1しか処理できないので符号化する必要があります。これを符号化方式(エンコード方式)といい、iso-2022-jpやUTF-8、Shift_JISなどがあります。

 

★POINT:文字のやり取りには、文字集合(字の集まり)を符号化(エンコード)して行う

 

■文字集合(CCS)とは

特定の種類ごとに文字を集めたものです(文字と番号の対応表(Coded Character Set))日本語の集合、ドイツ語文字の集合、韓国語文字の集合・・・のように様々な集合があり、表現したい文字集合を使います。PCの世界では最初に米国規格協会ANSI(JISのような機関)がAsciiコードという文字集合を制定しました。この文字集合は英数字や記号を格納しているため、英語環境でのデータをやり取りできます。 その後JISが日本語を扱える初の文字集合(半角英数字+半角カナのJISX0201)を制定しました。 改良されたJISX0208(JIS第一・第二水準の漢字、ひらがな、カタカナ、英数記号などの集合)は安定して使える文字集合です。Vista以降 のWindowsでは最新のJISX0213:2004(JISX0208+第3・第4水準漢字,2004年度改定)に対応しています。

文字集合に登録される文字は位置を識別する番号(符号位置CodePoint)を持ちます。JISX0208などのJIS集合は句点で位置を表します。

例「あ」…Unicode→3042、Shift-JIS→0X82A0、JISX0208→ 4-2(区点)

 

★POINT:主な文字集合→UNICODE,ASCIIコード,JISX0208,JISX0213

 

■符号化方式(CES)とは

文字集合(CCS)を符号化してコンピュータで扱えるようにするエンコード方式のことです(Character Encoding Scheme)。文字集合(CCS)の一覧表によって「文字←→番号」を変換し、符号化方式(CES)によって「番号←→コンピュータ用の数値」に エンコーディングするイメージです。このエンコーディング方法ですが、各符号化方式(CES)がそれぞれ独自の計算式で行います(下記エンコーディングしてみよう参照)尚、符号化方式(CES)の対応する文字集合(CSS)は決まっています。例えばJISX0208を符号化する方式(CES)にはISO-2022-jpEUC-JPShift_JISなどがあります。Unicodeの符号化(エンコード)方式はUTF-8やUTF-16です。(1つの文字集合を符号化する方式は1つとは限りません)

 

★POINT:主なエンコード方式(CES)

符号化方式(CES)

コード体系

概要

対応する文字集合(CSS)

ISO-2022-JP

(通称JISコード)

インターネット、電子メールで使われる日本語用の符号化方式。JIS(コード)とも言う。

メールでJISエンコードの場合に補助漢字(JISX0212)や環境依存文字を使うと文字化けするのはこれらの文字集合を対応していないから。

JISX0208

JISX0201(半角カナは許容外)

Shift-JIS

コンピュータ上で日本語を含む文字を表現できる符号化方式。MS,三菱電機などが開発。MSはShift-JISを独自拡張したCP932をWindowsの標準コードとして採用(同様に古いMacOSなどもOS内部コードにShift_JISの亜種を採用)日本語版WindowsではANSI★1とも呼ばれる (つまり簡単に言えばWindowsの内部コードはShift_Jisの亜種)

JISX0208

JISX0213はShift_Jis-2004)

EUC-JP

UNIXなどで、日本語を表現するときに用いられる符号化方式。JISX0212に対応(JISX0213は未対応★2

JISX0208、JISX0212(補助漢字)(★2JISX0213はEUC-JIS-2004)

UTF-8

最もポピュラーな符号化方式で文字集合はUNICODEです。メーラー含め、UTF-8対応ソフトウェアは多いため、文字化けなどが少な いです。例えば昔はメール本文に環境依存文字を入力してJIS(iso-2022-jp)でエンコードすると文字化けしていましたが、最近ではメーラーが自動的にエンコードを選択しUTF-8で送信するなどして表示 できます。

UNICODE

UTF-16

UNICODEをCSSとする符号化方式の1つです。最近のWindowsでは内部コードにUTF-16を使用。

UNICODE

★1  マイクロソフトが各国版のWindows用に割り当てたデフォルトの内部コードをANSIと呼び、日本語版Windowsの文字コードはCP932(Shift_JISの改良版・亜種)なのでShift_JIS=ANSIのようになっています。(つまり簡単に言えば他国版WindowsのANSIはShift_jis・CP932ではないということ)

■符号化方式でコードを求めてみよう(エンコーディングしてみる)■

例えば「あ」はJISX0208では4-2(区点)、Unicodeなら3042です。これをISO-2022-jpというよくメールで使われる方式でエンコードしてみます。まず、iso-2022-jpに対応する文字集合はJISX0208なので、Unicodeのコード3042は使いません。4-2区点に対しそれぞれ16進数で表現すると0x4、0x2です★1 それに20を足すので0x24,0x22となり、0x2422となります。これはあくまでもiso-2022-jp独自のエンコーディング計算法です。Shift-Jisでエンコードすると0X82A0、UTF-16でエンコードすれば0X3042です。このように各符号化方式で独自の計算法があります。

★1 Windows電卓で16進数を求める方法…電卓の「表示」−「プログラマ」をクリックし「10進」の状態で数字を入力→「16進」をクリック

      

 

 

教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows