Illustrator基礎講座 -デジタル4
HOME > 基礎講座 > デジタル > AD変換(テキスト) > NEXT

サイト内用語検索

クリックしてウインドウを開き、必要に応じてウインドウ幅を調節して閲覧してください。

Movable type-ベースにページを切り替えました

新しいページはこちらをご覧下さい。或いはHOMEから入って下さい
現在表示のページは、低解像度(狭い)モニタ用に残して有ります

 


コンピュータで扱うデータ(デジタルデータ)を大別したとき、テキストデータとバイナリデータの2つになります。前ページ「AD変換-1(音声のデジタル化)」で、バイナリデータのうち、音声情報のデジタル化について見てきました。 ここでは、情報の基本であるテキスト(文字)を、デジタルデータ化する手法について考えて見ます。

Illustrator講座、PC音痴駆け込み寺-共有


バイナリファイルとテキストファイル

■ 2進数とバイナリデータ

最初にファイル全体に係わることなので、「バイナリファイル」と「テキストファイル」について若干触れてみます。
バイナリとは、2進数の、と言う意味です。 コンピュータのCPUは、2進数しか解釈できないし処理できません。CPUとアクセス出来るよう、2進数で記述されているファイルを、「バイナリファイル」と言います。
その意味でテキストも本来バイナリデータなのですが、「テキストファイル」として別けて扱う事情が有ります。

マシン語、ネイティブコード

CPUが解釈・実行出来るデータは2進数です。プログラムやデータは全てCPUが理解出来るよう、最終的には2進数の形でCPUとアクセスします。
CPUと直接アクセス出来るよう、2進数で書かれた命令を、マシン語と言います。 マシン語で記述されたプログラムをネイティブコードと言います(ネイティブは母国語の、と言うような意味、CPUにとっての母国語はマシン語)。

ソースコードとコンパイラ

ネイティブコードは2進数の羅列、つまり0と1が延々と並んでいて、普通の人は全く理解出来ません(表記の際は2進数の4桁(4ビット)を一まとめにして、16進数の形に変換して記述します) 。
プログラムを作る人にとっても難しいので、通常はより人間の言葉に近い「言語」でプログラミングをします。これをソースコード、或いは上級言語高水準言語等とも言います。種類としては、C言語、BASIC等が有ります。

ソースコードのままでは逆にCPUは理解出来ないので、ネイティブコードに翻訳、変換する必要が有ります。これをコンパイラ或いはコンパイルする、等と言います。 それぞれのソースコードに応じて専門のコンパイラが有ります。

※ アセンブラ

なおアセンブラと言う言語も有ります。
これはネイティブコードにより近いものです。 何れにしても最終的には「マシン語」の形でCPUとアクセスする訳ですが、アクセスの仕方、記述の仕方はプログラムによってそれぞれ独自の仕様を持っています。
記述されているのは同じバイナリデータ(0又は1)ですが、記述の仕方は各プログラムによって違い、通常、異なるプログラム間では互換性が有りません。

■ テキストファイル(キャラクタ)

「さあ、テキストを開いて…」等といいますが、ここでは「テキスト」と言っても、教科書のことでは有りません。「文字」のことです。キャラクタ(Character)とも言います。
テキストファイルと言うのは、純粋に「文字データ」だけが記録されているファイルを差します。

テキストファイルは他のバイナリデータと区別される

コンピュータで扱うデータは全てバイナリーであり、 CPUとアクセス出来るのはネイティブコード(マシン語)だけ、と言う事情は、本来テキストデータにも共通です。 テキストファイルもコンピュータ内部では、当然バイナリデータとして扱われます。
しかし、データの種類としては、同じバイナリであっても、テキストファイルを特別扱いにすると言う事情が有ります。

テキスト(文字)は、情報の基本

人間の情報伝達の基本は「言葉」です(※ 注1)。そして文字はその言葉を視覚信号化したものです。 従ってディスプレーを介して、ユーザと情報のやり取りをしているコンピュータに取って、文字は情報の基本になります。 実際に英語の解らない人にとって(私もですが)、英文サイトは「情報」という点で、殆ど意味をなしません。
そしてこの事情は、アプリケーションやデータの違い、MacとWindows等、プラットフォームの違いを超えて共通であることが求められるし、実際、一部を除いて(※ 注)概ね互換性を持ちます。

(※ 注1)身振りや表情も情報伝達の手段では有りますし、声の抑揚だけでもある程度の感情表現は出来ます。しかしやはり「言葉」抜きに、情報を伝え合うことが如何に不便で制約が有るか、それは言葉の通じない外国の人と意思疎通を図ろうとする場合を考えて見れば分かるでしょう。

(※ 注2)例えば「機種依存文字」と言って、文字コードの違いによる、MacとWindowsで違って表示される「文字」が有ります。

テキスト表示は比較的単純で、規格化しやすい

テキストは、数も限られ(アルファベットは26文字、漢字で数万)、分類もある程度法則化されていて、規格化(コード化)しやすい、と言う事情も有ります。

バイナリデータの命令文は、アプリケーションによりその記述方法が違い、アプリケーションが違えば通常、データの互換性は有りません。 しかし、テキストデータは、共通のコード体系を使用している限り、OSの違い、Mac,Windows等、プラットフォームの違いを超えて共通に扱えます。
テキストコードは一番互換性の有るデータ形式です。

テキストのコード化

次にテキストのコード化について述べます。

コード体系

コンピュータ では文字を表示する為、文字一つひとつに固有の番号(コード)」を付けて定義をする、と言う方法を取っています。これを「文字コード」「テキストコード」、或いはキャラクタコードと言います。
同じコード表、コード体系に基づいたテキストファイルは、全ての環境で互換性が有ります。

テキストコードも、2進数データ(表記は16進数)で本来「バイナリデータ」です。 しかし通常のバイナリデータが、CPUに対し、意味のある命令文として記述されているのに対し、テキストコードは文字に便宜上対応させた、言わば単なる番号付けに過ぎません。つまり2進数で書かれたコードと、それによって定義付けられたキャラクタの間に、必然的な対応関係が有ってのことでは有りません。
だからコード体系が異なれば、同じコード番号で有りながら違う文字に対応していると言うことが有り得ます。そのことが下で述べる「文字化け」の一つの原因となります。

コード体系にも実情に応じた幾つかの種類が有りますが、コード体系を大きく分けた時「1バイト文字コード」「 2バイト文字コード」に区分されます。

■ 1バイト文字コード

1バイト=8ビット=256です。 つまり1バイトの情報は、256バリエーションの中の1個を表す事が出来ます。
アルファベットはAからZ迄26文字有ります。 大文字小文字合わせて52文字、これに数字、特殊文字、これで96文字になります。余裕を持って1バイトの範囲でコード化することが出来ます。
これらのコード体系で表示される文字は、1文字当たり1バイトのメモリを必要とし、「1バイト文字」、或いは、「半角文字」と言います。下記のコード体系が知られています。

アスキーコード

「ASCII(American National Standard Code for Informaition Interchange)」は、1963年アメリカ標準協会(ASA)で制定された7ビット符号) コンピュータ はアメリカを中心に発達したものであり、アルファベットも欧米文字なので、アルファベットのコード化はアメリカでいち早く設定されました。1963年 これがグローバルスタンダードとなっているASCII(アスキー)文字コードです。

アスキーコードでは、上記96種類に制御文字32個を加え、128のキャラクタを7ビットでコード化しています。 コンピュータ のOS等は、皆このASCIIコードを使って設計されています。

ISOコード

「ISO(国際標準化機構)」によって決められたコード体系。特に1967年制定の、ISO/R646-1967は、英数字に対する各国の定義の基礎になっています。

ほぼASCIIに準じているが、12個の空き符号を設け、各国の事情に応じられるようになっています。

※ JISにも、ローマ字用7ビットコード、カタカナ用7ビットコードが有る。 又、JISローマ字・カタカナ用8ビットコードも有ります。

「1バイトコード体系」資料参照

■ 2バイト文字コード

ところで、では日本語の場合はどうでしょうか。
「50音」と言う位ですから、平仮名だけでも約50個、カタカナも同数。濁音、半濁音等も有ります。そして何より膨大な漢字が有ります。それに英数字も使います。 到底、1バイト・256のバリエーションではコードし切れません。
そこで日本語は2バイト(16ビット・65536バリエーション)でコード化します。 これを「2バイト文字」或いは「全角文字」と言い、1文字表すのに2バイトのメモリを必要とします。

JISコード

JIS (日本工業規格)制定のコード体系。 現在、第一水準、第二水準まで制定されています。
JIS第一水準では、漢字2965字、平仮名83字、カタカナ86字、数字10字、英字52字、特殊記号147字、ギリシャ文字48字、ロシア文字66字、罫線文字32字、合計3489字からなる。 JIS第二水準では、多少の部首字形を含めた、3388字が含まれます。

シフトJISコード

JISコードは2バイトだが、1バイト、2バイトが混在しても判別出来る様に、なおJISコードを其のまま使える様、日本のマイクロソフト関係者を中心に策定されたコード体系。日本語表記のデファクトスタンダードになっています。 パソコンは全てシフトJISを採用。

※ 日本語だけでなく、中国語、アラビア語等、文字数が多く2バイト文字コードを使っています。 又ここに記述しただけでなく、色々なコード体系が存在します。
特に中国では漢字の数が多く、又日本でも使いたい漢字が増えるなどして、2バイト―65536ではコードが不足だ、と言った話を読んだ記憶が有ります。

■ 文字化け

コード体系による文字化け

この様にコード体系に幾つかの種類が有ります。 英数字(1バイトコード)の場合、キャラクタ数も少ないし、コード体系の違いで、同じ文字に対するコードがが違う、と言う問題は余り有りません。

日本語(2バイトコード)の場合、コード体系の違いで、同じ文字で有りながらコードが違う、と言う場合が有ります。
例えば、「漢字」のコードは、シフトJISで「8AGF 8E9A」ですが、UNIX等で使われているEUCコードでは「B4C1 BBFA」(何れも16進数表示)になります。

つまり、コード体系が違うと、違う文字に変換表示される場合が有るのです。 この様に、作成側と表示側でのコード体系の違いで、全く訳の分からない文字列が表示される事を「文字化け」と言います。
「テキストデータ」は、最も互換性の有るデータ・ファイル形式ですが、この様に「コード体系」が違うと正しく表示されない場合も有り得る訳です。

機種依存文字

一般的に「機種依存文字」と言うのは、ハードやソフトの処理系の違いによる、文字の表示の違いや出力の不具合を指す訳ですが、特に日常的に留意する必要があるのが、MacとWindowsの間で問題となる「機種依存文字」でしょう。
殆どの文字について、MacとWindowsの間で互換性が有るのですが、一部異なるコードに拠る表示の違いが発生します。
例えばWindowsで、Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,①,②,③,④,⑤,⑥,⑦,⑧,⑨,⑩,㍉,㌔,㌢,㍍,㌃,㌶,㍑,㍗,㌍ と入力してもMacでは違って表示されます。実際このページをMac環境で閲覧している人は別の文字として見ている筈です。
特定の、つまり使っている機種が分かっている相手へのメールなどでは問題が無いとしても、不特定多数が見るかもしれない掲示板などでは、これらの文字は使うべきではないでしょう。

※ バイナリデータの文字化け 「文字化け」に付いては、もう一つ別の要因が有ります。 テキストデータでない「バイナリデータ」をテキストエディタ(Win付属のメモ帳など)で無理やり開いた場合です。 この件に付いては章を改め「デジタル画像」で。


※ テキストファイルサイズ

テキストエディタ

文字データとそのメモリサイズの関係について、実際に検証して見ましょう。
Winで「秀丸エディタ」等、テキストエディタを使っている人は、以下のことをやって見てください。 無ければWin標準付属の「メモ帳」でも結構です。

エディタを開き、「a」 と半角文字1個を入力して、そのままデスクトップに保存して下さい。 ファイルを右クリック、プロパティで「サイズ」を見て見ると、チャンと「1バイト」と表示されています。
同じく全角文字を含めいろいろ入力して見ると その都度ファイルサイズを確認できます。 「メモ帳」でもほぼ同じ結果を得られます。

「ワード」「ワードパッド」では、上記のようにキャラクタ1個ごとのファイルサイズは表示出来ません。 実は、ワープロソフトのデータは「テキストデータ」では無いのです。このことについては後でもふれますが。

広辞苑

ところで、ではあの「広辞苑」は大体どの位のサイズなのでしょうか。
とても1文字づつ数える訳に行きませんが、計算すると約930万個の文字が有ります。 図表などを抜きにすると、約1,800万バイト、つまり18メガバイト位になる訳です。
今,ハードディスクは、1台で6テラバイトなどと言うものが出回って 居ます(2009年10月現在)。単純計算すると、広辞苑約33万冊分も保存できることに なります。
ですから、ワープロや表計算だけでの使用なら、一生かかっても ハードディスク1台を埋めることは出来ないでしょうね。
そして大切なことは、デジタルでは上記の様に、全て数値で計算可能だと言うことです。

遺伝子 DNA

人間の遺伝子DNAのメモリサイズはどのくらいでしょうか。
30億塩基対、と言いますからともかく文字数は60億個です。 紙に書き出したとすれば、広辞苑約650冊近くになります。
しかしビットで表す情報量、と言うことでは次の様になります。 これは「分子進化の中立説」で世界的に有名な進化生物学者、木村資生氏が、その著書「生物進化を考える(岩波新書)」の中で計算してくれています(94ページ)。 それに基づいて、概要を記載して見ます。

………60億個の塩基を文字とした文章は、どの位複雑な命令を表すことが出来るのか。 これは遺伝情報の量を英文に換算して見るとよく分かると思われる。
DNAは、A,T,G,Cの4種類の文字、英文はアルファベット26文字と語間スペースも1文字と数えて合計27文字。 これをビット変換すると、DNAの4文字は2ビットとなり、アルファベット27文字は約4.75ビットとなる。 故に、情報量の上では英文の1文字はDNAの約2.38文字(塩基)に該当する。

これで計算すると、ヒトの受精卵が含みうる情報量は英文換算、約25億字の文章に相当する。
大きな書物の例として、大英百科事典で考えると………、 この1956年版は全体で23巻、各巻およそ1000ページ、全体として2億字を含むと推定される。
したがって単純計算で、DNAは英文換算で大英百科事典12セット分に当たるという………。

この膨大な情報量そのものにも驚くけれど、これが目にも見えないほど小さな細胞の、さらにその中の核の中に巧妙に折りたたまれて格納されていることは驚異としか言いようがない。 そしてそれが100兆とも言う身体全体の(赤血球等、一部を除く)細胞全てにセットされているのだ。

しかし分子生物学の所見によると、高等な哺乳動物では、DNAの中で、遺伝子として働く部分は「エキソン」と呼ばれるホンの1部で、残りの大部分は「イントロン」と呼ばれる、今のところハッキリした機能が分からない、いわば「ガラクタ」と考えられている。
又「中立説」によれば、どの塩基(文字)が来ても生存に関係なく、そこに何でも文字さえ書いてあれば内容などどうでも良い、と言う部分がたくさん有るそうである。
それらを差し引いた場合、普通の意味の情報量は、大英百科事典1組(23巻)相当と考えられる。それにしても、膨大な情報量ではある。

※ 2005年9月、それまでホンの数%とされていた機能領域が、実は70%以上ある、との研究成果が、理化学研究所などの国際研究チームにより発表された。 それを前提に計算しなおすと、大英百科事典8セット分以上と言うことになる。 なんとなくホッとした感じ。 そしてこのDNAセット(ゲノム)が、赤血球等を除く、約60兆個、或は100兆個と言われる、全ての細胞に入っている訳だ。 生命の不思議に舌を巻くばかりである。


■ テキストデータあれこれ

バイナリデータとテキストデータの関係

バイナリデータは、プログラム毎に記述の仕方が違うし、作成したソフト毎に違いますがいずれにしても2進数のデータで、この点だけ言えばテキストデータも同じです。
従って、バイナリデータファイルでも、テキストエディタで無理やり開けば開ける場合が有ります。 その場合、全く意味の無い文字の羅列として表示されます。
それは、各プログラムのアーキテクチャーによって記述された2進数字を読み込み、その数字でコードされている文字を表示して来るからです。

データの互換

文字データもアプリケーションが異なれば、そのままの形での互換性は有りません。アプリケーション独自の編集が掛かっているからです。これを一旦テキスト形式に落とし込むことで、つまり裸のテキストデータにすることで、アプリケーションを超えた互換が可能になる場合が有ります。
表計算ソフトである「EXCEL」と「葉書宛名ソフト」は、そのままではデータの互換が有りません。しかし、CSV形式等のテキストデータに変換すれば両方のソフトで互換が可能です。
一旦CSVで取り込んでから、それぞれのアプリケーションで編集し直せば良い訳です。

ワープロソフトのデータと、Illustratorのデータ

ワープロソフトは、「ワードプロセッサ」の言葉どおり、主に文字を取り扱いします。 しかし実はワープロデータは、「テキストデータ」では有りません。
フォントの種類や、装飾等、単に文字との関連付けにとどまらない情報を含んでいて「バイナリデータ」です。

Illustratorのデータはどうでしょうか。最もテキストデータと縁遠いように感じられます。
Illustratorのファイルを「秀丸エディタ」等のテキストエディタで開くと、有る程度意味が判別できる文字が表示されます。
実はIllustratorは「ポストスクリプト」と呼ばれる文法で記述された「テキストデータ」なのです。 これは、HTMLファイル等でも同じことです。 このことについては章を改め「デジタル画像」で述べます。

最近のIllustratorは表示に関する内部処理がポストスクリプトではなく、PDFになっていて上記の用にテキストエディタでまともに開けなくなっています。一旦EPSに保存しなおせばテキストデータとして開けます。