本記事は、アーカイブに保存されている過去の記事です。最新の情報は、公益社団法人日本印刷技術協会(JAGAT)サイトをご確認ください。

DTP豆知識(200101)JIS X 0221とユニコード,データの表現

本コーナーでは,DTPエキスパートを目指すうえで理解しておきたいことを模擬試験形式で解説します。JAGAT認証DTPエキスパート 田邊忠氏に,問題のポイントや重要点を解説していただきます。試験勉強のご参考に,またはDTPに必要な知識の確認にご活用ください。次回,第15期DTPエキスパート認証試験は2001年3月11日に行われます。詳細はDTPエキスパートのページをご覧ください。

問1 JIS X 0221とユニコード

次の文の[ ]の中の正しいものを選びなさい。

 国際符号化文字集合JIS X 0221は「ISO/IEC 10646-1 Universal Multiple-Octet Coded Character Set」に対応し,[A:(1)UCS (2)Unicode (3)UMOCCS (4)世界コード]とも呼ぶ。その全体構造は将来の拡張を考えた[B:(1)4バイト (2)8バイト (3)16ビット (4)2オクテット]コードだが,2バイトで1文字を表すUCS-2が決まっている。全体では,上位から1バイトずつをそれぞれ群,面,区,点と表すが,このうち群と面がともに00hの面,すなわち区と点だけを使って表すものがUCS-2である。この面は基本多言語面([C:(1)GKS (2)BMP (3)CSG (4)CAE])ともいい,[D:(1)EUC (2)シフトJIS (3)ASCII (4)Unicode]と対応関係がある。

 基本多言語面は,それだけで各国の文字を包含する目的で,アルファベットと記号類が約[E:(1)1000 (2)1万 (3)2万 (4)5万]字,漢字は[F:(1)JIS (2)CJK統合 (3)UCS統合 (4)康煕字典]漢字が約2万字含まれている。JIS X 0208と異なり,従来の1バイトの制御文字のエリアにも文字を割り当てている。

 UCS-2では1つのコードが1つのグリフを表しているわけではなく,中国,台湾,日本,韓国のそれぞれの国の規格の差である字体の「ゆれ」を許している。従って,実装面でどの文字を使うかを指定する仕組みが必要になる。例えば,Windowsでは,[G:(1)ロケール (2)OLE (3)WorldScript (4)GDI]という機能で,日本語や中国語という指定を切り替えて表示する。
 CJK漢字のJ欄にはJIS X 0208とJIS X 0212の文字が[H:(1)一部 (2)半分 (3)全部]含まれ,その並び方は[I:(1)同じである (2)シフトしている (3)逆順になっている (4)全く異なる]。
 UnicodeのエンコーディングはJAVAや[J:(1)DOS (2)CP/M (3)Windows98]で採用されているが,アプリケーションが対応していないと使えない。

■模範解答■
A(1),B(1),C(2),D(4),E(3),F(2),G(1),H(3),I(4),J(3)

■出題のポイント■
 Unicodeは扱える文字数が2万字強と多い。1バイトの欧米言語で使われる文字はもちろんのこと,ユーラシア大陸,アジア圏に多い2バイト言語で使われる文字もサポートしている。これから2バイト言語の扱いを考えるには,欠かすことのできないコード体系である。ここでは日本のJIS規格とUnicodeの関係も理解しておくこと。

■問題解説■
 国際符号化文字集合JIS X 0221は問の文中にもあるように,「ISO/IEC 10646-1 Universal Multi ple-Octet Coded Character Set」に対応しており,その頭文字をとってUCSと呼ぶ。これは,全体が将来の拡張を考えた4バイトコードで構成されていて,このうち,UCS-2が決まっている。UCS-2は2バイトコードの言語,文字に対応している。
 UCS全体は群,面と区,点から構成されている。つまり,UCS-2はUCSを構成する最小単位の面であり,区と点で表されている。UCS-2は群と面がともに00hの面であり,この面を基本多言語面(BMP)とも呼ぶ(図1参照)。Unicode Consor tiumが規定した文字コードUnicodeと対応関係がある。

 基本多言語面には,アルファベットと記号類が約2万字,漢字はCJK統合漢字が約2万字含まれている。これはJIS X 0208と異なり,従来の1バイトの制御文字のエリアにも文字を割り当てている。CJK統合漢字とは,C(Chinese=中国語)とJ(Japanese=日本語),K(Korean=韓国語)の漢字を統合したものである。
 JIS X 0208は,日本の情報機器に標準的に実装されているJIS漢字コードであり,7ビットおよび8ビットの情報交換用の符号化漢字集合と呼ばれる。これも区と点で表された区点コード系である。
 UCS-2では,1つのコードが1つのグリフを表わすのではない。中国(簡体字など),台湾(繁体字,台湾国家基準など),日本,韓国がもつ規格の差による字体の「ゆれ」を許しているため,実装面で使う文字を指定する仕組みが必要になる。Windowsでは,ロケールという機能で,日本語と中国語などの指定を切り換えて表示している。
 CJK統合漢字のJ(日本語)欄には,JIS X 0208と補助漢字のJIS X 0212の文字(図2参照)がすべて含まれるが,その並びは全く異なっている。  UnicodeのエンコーディングはJAVAやWindows98で採用されているが,アプリケーションが対応している必要がある。

 参考までに記しておくが,MacintoshでもMac OS8.5以降では標準対応している。また,ATOKでもATOK11以降ではUnicode表がサポートされている。しかし,こちらもUnicodeに対応したフォント,アプリケーションがないと使えないことに変わりはない。


問2 データの表現

次の文の[ ]の中の正しいものを選びなさい。

 コンピュータの内部では,データを0または1の2進法で処理する。しかし,人間がそれを識別するのは難しいので,10進数を表現するための[A:(1)Binary (2)Octal (3)HEX(hexadecimal) (4)BCD]コードや,16進表現[B:(1)Binary (2)Octal (3)HEX(hexadecimal) (4)BCD]を用いる。16進表現では,0〜9の数字と[C:(1)10〜15 (2)10〜16 (3)A〜E (4)A〜F]の文字を使う。
 10進数の「6」は,2進数では[D:(1)0001 (2)0010 (3)0101 (4)0110]であり,16進数では[E:(1)5h (2)6h (3)16h (4)0101h]と表現する。
 10進数の[F:(1)19 (2)29 (3)39 (4)49]は,2進数では「0001 1101」であり,16進数では「1Dh」と表現する。
 デジタルの最小単位であるビットは主に通信の世界で使われるが,デジタルデータを扱う機器では[G:(1)2 (2)4 (3)8 (4)16]ビットが単位となり,これを[H:(1)デシマル (2)ニブル (3)オクテット (4)ワード]という。
 1バイトは,文字なら最大[I:(1)8 (2)16 (3)64 (4)256]字が識別できる。2バイトではその2乗までの値をとれるので,色を表現するために1ドット当たり2バイト用いるとすれば,最大で[J:(1)256 (2)1024 (3)65536 (4)16777216]色表示となる。

■模範解答■
A(4),B(3),C(4),D(4),E(2),F(2),G(3),H(3),I(4),J(3)

■出題のポイント■
 コンピュータの内部ではデータが0と1の2進法で表現されている。もちろん,数値演算も2進法が基本になっている。これがコンピュータの基本であるが,人間が通常,数字を扱う10進数とでは,間に変換の必要がある。ここでは2進法,10進法,16進法の関係を理解すること(表1参照)。

■問題解説■
 コンピュータの内部で数値を扱うための基本となっている2進数は,Binary(バイナリ)と呼ばれている。また,バイナリコードは数値だけでなく,文字,画像など,あらゆる情報を扱うための基本的なコード体系である。
 一方,人間が日常生活で数字を扱っている10進数はBCD(Binary Coded Decimal)と表現される。Decimalは10のことである。
 さらに,16進数はHEX(hexadecimal)という。このhexaは6のこと,hexadecimalは16のことである。16進法では,0〜9までは通常の数字表記を使うが,10〜16までの表記はA〜Fの文字で行う。これは表記上,2進数などとの混乱を避けるための工夫である。
 ちなみに,8進数はOctalと表現される。Octalで8を示す10進数の6を,2進数で表すと0110Bになる(表2参照)。同じ10進数の6を16進数で表すと6hとなる(表3参照)。数字の後ろに付いているアルファベット,BとhはそれぞれBinary(バイナリ)とHEX(hexadecimal)の頭文字で,それぞれ2進法,16進法で表記していることを示している。10進数の29は2進数では0001 1101Bとなり,16進数では1Dhとなる。

 コンピュータの初期には,CPUでの演算処理をデジタルの最小単位である0と1で処理していた。0と1の2通りでの処理は1ビット(bit)と呼ばれる。その後,コンピュータはその進化過程で,デジタルデータを8ビット単位(=1バイト)で扱うようになった。これをオクテット(Octet)と呼ぶ。
 1バイト(Byte)は28=256(ビット)であり,文字ならば最大256字が識別できる。2バイトではその2乗の値,(28)2=216=(256)2=65,536となり,文字,色などを6万5536種類識別できる。



(出典:月刊プリンターズサークル連載 2001年1月号記事より)


2001/01/21 00:00:00


公益社団法人日本印刷技術協会