ペン入力,漢字コード,Win3.1他(月刊ASCII 1992年6月号7) [月刊アスキー廃棄(スクラップ)]
「ASCII EXPRES」Sから「ペン入力」をスクラップする。
「TBN なんでも相談室」からスクラップする。
プログラミングの際、漢字コードへの配慮は必須だったし、面倒だった。
「Win3SIG」の第14回がWindows 3.1だった。抜粋スクラップする。
「UAE(修復不能なアプリケーションエラー)が大幅に減った」とあるが、それでもかなりの頻度で落ちていた。PageMakerを使うときは1ページ作るごとに保存していた。またDOSに降りたときは祈る気分だった。Win95こそが「大幅に減った」という表現が許される。Win3.1では「かなり減った」が妥当な表現だと思う。
「なないろのディスプレイ」をスクラップする。
文字入力とポインティングデバイスの双方の役割を兼ねる「ペン」.このペンを入力装置として用いるコンピュータが,昨年から活発な動きを見せている.
コンピュータ関連のショウなどでも,「GRiDPAD」などを代表とするコンピュータや,米GO社の「PenPoint」のように,ペン入力を前提としたマシン/OSが数多く出品され,最近では,米IBM社がPC/ATベースのペン入力マシン「ThinkPad(Model2521)」を発表している,また,国内でも「NCR3125」(写真1)や,「PenTopmodelV((株)ワコム)」など,ペン入力対応のマシンが今春,発表された.
ペンは,キーボードやマウスのような入力デバイスとして身近な存在になるのだろうか?
■電磁授受方式が主役
コンピュータの歴史を振り返るとペンを入力デバイスとして使うようになったのは意外と古く,1950年ごろの「ライトペン(ライトガン)」からである.これは,CRTの画面にペン先をあて,走査線のスキャンタイミングから位置を検出,画面上の任意の1点を指定するポインティングデバイスだ。しかしペン先に受光部があるため,ペンを画面に垂直に立てないと読み取り誤差が生じるなど,使い勝手に難があった.
その後のペン入力デバイスとしては,デジタイザ(XY軸の動きを機械的に読み取る)が進化した「タブレット」がある.タブレットは,主に,CADなどで図形を入力するときなどに用いられていた.タブレットの感知方式は,ペンまたはマウス状の装置(カーソル)と,平板との静電容量の変化を感知する「静電容量感知方式」である.
現在、携帯性を重視した電子手帳などでは、ペン入力が可能な製品もいくつかある.それらの多くは、先ほどの静電容量感知方式か,ディスプレイに加える圧力で位置を判定する「感圧方式」を採用しているところが,静電容量感知方式は湿気などの水分に弱く,感圧方式は読み取り速度が遅いという短所があった.また,両者とも専用のペンがいらないという利点があるが,ペンでのスイッチ操作ができず,マウス代わりにはならなかった.
★ 最近、ペン入力コンピュータが注目されるようになったのは,これらの位置判定方式に代わって、新しく「電磁授受方式」が開発されたことが背景にある(図1).
この方式には、入力面に手や物(腕時計など)が触れてもデバイスの位置判定が影響を受けず,読み取りも高速なため,ペンで直線や曲線を描いても十分な精度で認識できるという利点がある.また,ペン(またはカーソル)と入力面が十数mm程度離れても動きを感知できるため、図面などを間に挟みこんでトレースすることも可能だ。
前述した国内2社のペンコンピュータも,この電磁授受方式を採用している.これらの 製品では,ペンの指がかかる部分にボタンを付けることで,マウスと同様のクリック/ドラッグなどの操作が実現できる.
■ジェスチャー操作
ペン入力の普及には,入力デバイスの物理的な改良だけでなく,手書き文字認識技術の進歩も重要な要素だ.ほとんどの文字認識ソフトウェアは,英数字認識には強いが,日本語の入力/認識は不得意だという.特に漢字には,画数が多いだけでなく、部首の区別(明と日月)などの問題もある.現段階のペン入力は,一字一字離して丁寧に書かなければ正確な日本語入力はできない。
しかし,ペン入力には「ジェスチャー処理」が使えるという大きな利点がある.ジェスチャーとは、ペン入力対応のワープロなどで,簡単な記号の入力により,文字列の削除や挿入の処理を行なうことだ(図2).ペンデバイスでは,文字入力と同時に1アクションで処理の指定ができ,表示文章の任意の箇所をダイレクトに分かりやすく操作できる.大量の日本語入力には向かないが,編集作業などでは、ペン入力+ジェスチャーの効果は非常に高いだろう.
さらに,歩きながらのコンピュータ利用はペン入力マシンにしかできない.いくら軽量なノートパソコンでも,持ち歩きながらのキーボード操作は不可能だが,片手で扱えるペンデバイスならば簡単な操作やメモ程度の入力は可能である.また,入力/操作姿勢を選ばないため、寝ころんでも,上を向いても使える。ほかにも,キーボードに比べて入力時の音が小さいなど,利用場所を限定しないという有利さがある.
現在、ペン入力マシンは,移動先での入力を考慮したバーチカル市場での引き合いが多いというが,今年の後半には,一般向けのペン入力OS「PenWindows(マイクロソフト)」などの発売も予定されている.ペン入力からは,しばらく目を離すことができない.
「TBN なんでも相談室」からスクラップする。
漢字コードの種類は?
Q パーソナルコンピュータなどで使われる漢字コードにはどのようなものがあるのでしょうか.
A コンピュータは,文字を数値に対応させて処理しています.文字と数値の対応は,コンピュータごとに決めてもかまわないのですが,情報の交換を考えると,あまりバラバラでは不都合です.
そこで基本的な情報交換用の文字コードとして,まずアメリカでASCIIコードが決められました。これは94種類の英数記号(スペースと削除コードを含めて96種類)と32種類の制御コードから構成されるコードで,その後ISO(国際標準化機構)により基本的な情報交換用コードとして採用されました.
さて,このASCIIコードは最も基本となるコードですから,どんなコンピュータでも,ASCIIで規定されている文字ならほぼ互換性を保って読み書きができることになっています.ただし国によっては,それぞれの事情に応じた文字が割り当てられることがあります.たとえば日本では「\(バックスラッシュ)」の代わりに¥(円通貨記号)」が割り当てられています.また,JISでは,この領域のコードに英数字とカタカナが割り当てられるようになっています(いわゆるANK,または「半角文字」).
ちなみに,パーソナルコンピュータでは1byteは8ビットが普通ですが,文字を7ビットで処理するコンピュータや,7ビット以外は受け付けないシステムを考慮して,最も基本的なASCIIコードは7ビットで構成されています.
しかし、いうまでもなく,日本語で使う何千字という文字を7ビットのコードに押し込むのは不可能です。もちろん,8ビットでも足りません。そこで,文字コードを拡張して,日常的に利用する漢字などを2bytesで表現するコード体系が登場します。
JISコード
2bytesの幅があれば,65536種類の文字を表現できる計算です.しかし,ここであわてて2bytesにびっちりと漢字を割り当ててしまうと,何かと不都合です(後述のユニコードがこれに近いコード体系ですが……).たとえば,前述のように1文字は7ビットしか受け付けないコンピュータでは,面倒なことになります.また,制御符号は常に制御符号として機能したほうが好都合です.
そこで,7ビットの基本的なコードのうち,制御コードを除いた94種類のコードを2文字組み合わせて,最大8836種類を日本語用の文字コード(いわゆる「全角文字」)用の領域として,文字を割り当てます。これが一般に「JIS漢字コード」と呼ばれる漢字コードで,使用頻度の高い第一水準と比較的使用頻度の低い第二水準の2つのグループが,1978年に選定されました.
JIS漢字コードは,たとえば漢字の「亜」文字,21(16進数)という2bytesの数値に対応させます.また,「区点コード」により表わすこともあります(図1).
「区点」は,漢字に割り当てられた上位,下位バイトの先頭を,それぞれ一区,1点とするコードで,16進数ではなく10進数で表わします.したがって区点コードで「亜」は,16区1点,つまり1601(10進数)になります。このようにJIS漢字コードで規定されているコードは,上位バイト,下位バイトとも,Ibyte系のJISコードやASCIIコードで規定されている文字と重なります.そのため,1byte系のコードと2bytes系のコードが混在するテキストでは,エスケープシーケンスによってコードを切り替えます.
ところでJIS漢字コードは,その後1983年と1990年の2回,改訂されています.
1983年の改訂では,字体の整理と,意味が同じで字体が異なる若干のコードの入れ替え,および罫線素片などの追加が行なわれています.
また,1990年の改訂は,第一水準と第二水準についてのごく小規模な改訂に加えて,第一水準,第二水準に含まれない補助漢字と呼ばれる文字集合が制定されています。
これらの改訂は、必ずしも強制力を持ちません.そのため,設計の古いパーソナルコンピュータ(PC-9801など)では,1978年の規格にそったコードが現在でも使用されているのですが,比較的新しいパーソナルコンピュータ(エプソンのPC-9801互換機など)やプリンタなどは,1983年のコードが採用されているなど,多少混乱があるようです.
なお、いまのところ,1990年の改訂で追加された補助漢字を利用できるパーソナルコンピュータは見あたりません。
誌面の関係で,詳しくは説明できませんが,「JISハンドブック情報処理編」の情報交換用符号関連のセクションに掲載されている規格を参照することをお勧めします。
シフトJIS(MS漢字コード)
シフトJISは,Microsoft社(というよりは,事実上アスキー)が自社のMS-DOSに採用した内部コードです.
これは,JIS第一水準と第二水準の文字を一定の規則に従って変換し,1byte系のJISコード中の未定義となっている領域に,漢字を割り当てたコード体系です.
この方式は,1byteの英数字とカタカナの混在した文字列については,特別な処理を行なわずに表示できること,漢字を指示するためのエスケープシーケンスが不要になることなどのメリットがあり,MS-DOSに限らず,各社のパーソナルコンピュータに採用されている漢字コードです.また,最近ではパソコン通信用の文字コードとして,事実上の標準に近い状態になりつつあります。
しかし,シフトJISにはいくつかのメリットがある反面,拡張性と汎用性が犠牲になるというデメリットがあります。たとえば,未定義領域はわずかしか残っていませんから,そのままでは補助漢字が使えません。また,通信用のコードとして使った場合に制御コードなどとの問題が発生する場合があります.
EUC(Extended UNIX Code)
EUCコードは,AT&TがUNIXで複数バイト文字を利用するための文字コード体系として考案した国際的な文字コード体系です。日本では,EUCに基づいて漢字を処理できるようにした漢字コードが利用されています.
EUCの特徴は,JISコードが持つ拡張性と,情報交換用符号系としての汎用性,そしてシフトJISコードが持つ1byte/2bytes文字が混在した場合の処理の手軽さを併せ持っていることでしょう.
基本的な文字セットは、例によって7ビットのASCIIコードです.そして漢字は,JIS漢字が使われます.しかし,EUCは,コードとしては8ビットを使い,最上位ビットをJIS漢字を示すフラグとして利用しています。
具体的には,「亜」の文字はJIS漢字コードでは3021(0011000000100001)ですが,EUCでは上位バイトと下位バイトの最上位ビットを1として,B0A1(1011000010100001)で表わします。
しかし,これだと1byte系のJISカタカナ,いわゆる半角カタカナが使えません。そこで,この場合は,シングルシフトコード(8E)を先に付け加えてカタカナを表わします.
また,コンピュータがサポートしていれば,EUCではSS3コード(8F)を先に付け加えて1990年版JISで制定された補助漢字を表わせます.
Unicode
最近話題の文字コードがユニコードと呼ばれるコード体系です.有力コンピュータメーカーが参加するユニコードコンソーシアムで検討中のコード体系ですが,最近ISOがユニコードの採用を決めたとのことで,にわかに現実味を帯びてきました。
まだ検討中の段階ということで,実際に利用されるようになるまでには,変更が加えられる可能性がありますが,簡単にいえば,世界中のすべての文字を制御コードなどを除いて,16ビットの文字幅,つまり6万種類程度に分類して詰め込んでしまおうというもの。漢字だけでも何万種という数になるのですから全世界の文字を集めると,16ビットでは足りなくなるかもしれません。そこでユニコードでは,形が似た文字は,意味的には別の文字でも同じコードに割り当てます(図2).
ユニコードにより,一つのシステムが全世界共通に使えるようになるわけですから,画期的な試みです.その反面,形が似ているからといっても別の文字は別の文字.それぞれその国の文化を背景に持つ文字をそう簡単に「似てる/似てない」といえるのかどうか,また、既存のシステムとの整合性はどうかなど,未解決の問題は少なくなさそうです.(安田 幸宏)
プログラミングの際、漢字コードへの配慮は必須だったし、面倒だった。
「Win3SIG」の第14回がWindows 3.1だった。抜粋スクラップする。
(前略)
今まで,Windows Ver.2の互換モードとして,そしてi8086マシンのためのモードとして利用されていた「リアルモード」がなくなった(日本電気のWindows 3.0はEGC搭載機種以外は動作しないため、結果的にリアルモードでもi8086やV30では利用できなかったが).
Ver.3.1が利用できる機種はi80286以上のCPUを持った機種ということになるが,動作速度や利用できるメモリ空間のことを考えると実情に合った選択と言えるだろう.
(中略)
さらに,386エンハンスドモードでは,Control Panelの386 Enhancedから「HDDのスワップエリア固定化」を選択すれば,スワップ時間も短縮される。こういった小さな積み重ねが組み合わされて、システム全体の操作感が改善されている.
(中略)
動作速度,操作性の向上のほかに,ウィンドウ自体の信頼性が高くなったことも評価される.まず,メモリ不足やデバイスアクセス時によく発生したUAE(修復不能なアプリケーションエラー)が大幅に減ったと言われている。実際にインストールしてからUAEは一度も発生していない. また,アプリケーション利用時に「Alt」+「Ctrl」+「Delete」に続き,「Enter」キーを押すことで利用中のアプリケーションだけを終了できるようになった。複数のアプリケーションを利用していて,1つのアプリケーションがハングしたために,システム全体を再起動するような局面は少なくなったのである.
(中略)
クライアントプログラムとして動作するWriteやCardfile,市販されているWord for WindowsやExcelなどで作ったデータの中から,PaintbrushやMicrosoft Drawなどを呼び出したり相互にリンクしてデータを直接やり取りすることができる.i486マシンで8Mbytes以上のメモリを用意すれば,アプリケーションの切り替え速度も実用レベルである.
Packagerを利用することで,従来のカット&ペーストでは貼り込めなかったWAVEファイルや標準MIDIファイル,MMMのアニメーションを,WriteやWord for Windowsの文書中に貼り込むこともできる.
(中略)
今回の改良は,大きなものではなくWindows 3.0のシェイプアップだと言われている。使ってみると,3.0に積み残したことをすべてやったと言うほうが正確かもしれない。ハード,ソフトともにMicrosoft Windowsへの対応が進んでいる米国では,ますますMS-DOS環境からの乗り換えに拍車がかかることは確かだろう.
日本語のWindows 3.1については,マルチメディア関連のドライバが各社まちまちになる可能性がある.そして,付属する日本語のTrueTypeがどの程度のものなのかが気になるところだが,マイクロソフトは年内に発売できるだろうと発表している。
「UAE(修復不能なアプリケーションエラー)が大幅に減った」とあるが、それでもかなりの頻度で落ちていた。PageMakerを使うときは1ページ作るごとに保存していた。またDOSに降りたときは祈る気分だった。Win95こそが「大幅に減った」という表現が許される。Win3.1では「かなり減った」が妥当な表現だと思う。
「なないろのディスプレイ」をスクラップする。