探求☆散策記

見たこと、聞いたこと、思ったことを綴った、日常探検記録。

日本語とコンピュータ

2003年09月20日 22時40分54秒 | パソコン関係
【文字コードとは】
 文字を含みデータは全てコンピュータの処理上は0と1での扱いとなっているが、文字を表示する為に番号を採番して処理を行っているのである。たとえばAだったら41番というように変換する。Aを表示させたい場合は「41番の文字を表示させろ」という命令を発するのである。従って永久に端末としての処理であれば任意で良いのかもしれないが、ネットワークなどの環境面からも文字に割り振る番号は一意でなくてはならない。

【日本語と文字コード】
 コンピュータは主にアメリカで発達してきたため、未だにアルファベットや数字などの1バイト(7/8ビット)を基本単位として扱う前提で作られているものが中心である。そのなかで日本語のように多くの文字を必要とする言語は、1文字を表わすのに2バイト以上を要するため、いろいろな困難が伴いう。特にインターネットを通じて様々な環境の情報を交換するにあたって、思わぬ問題に遭遇するケースが増えてきた。日本語の文字コードは統一されずに現在に至っている。現在主に使われている日本語コードはShift-JIS, JIS, EUCと言う3つである。この他unicodeがあり、「全世界統一文字コード体系」という試みも進行中であるが、まだ開発段階上といえる。

【JIS】
 JISコードはその名の通り,JIS(日本工業規格)で規格化された文字コードで、こちらはISO(International Organization for Standardization: 国際標準化機構)にも,ISO-2022-JPとして標準化されている。標準化されていると言う事はインターネット上で使われる日本語文字コードはJISが推奨されると言うことです。事実,メールデータは一部のメールソフトをのぞき,ほとんどはこのJISコードを用いて送信されている。
 JIS漢字コードは「図形文字とそれらのビット組合せとの対応を規定する」規格であるとされている。1978年1月1日に最初のものが発表され(JIS C 6226-1978)、1983年の改訂を経て1990年9月のJIS X 0208-1990によって現在の6,879文字の“漢字集合”が定められた。このX 0208は1997年1月に再度改訂され、従来曖昧だった部分をより厳密にするとともに、シフトJISやRFC1468などの符号化法もJISに取り込んだ(JIS X 0208:1997)。
 この規格は正式には「7ビット及び8ビットの2バイト情報交換用符号化漢字集合」と呼ばれ、図形文字の集合(文字セット)として6,879文字が定められている。このうち、かなや記号を除いた漢字は6,355字で、使用頻度に応じて第一水準と第二水準にわけられている。
 使用頻度の高い第一水準は2,965字あり、基本的に音読みの50音順に並んでいる(音読みのないものや複数の読みのあるものは一つを「代表音訓」と定めてそれによって並べる)。第二水準は頻度はそれほど高くないが重要なものと、人名などによく使われる旧字体が3,390字選ばれ、こちらは漢和辞典のように部首順(部首内では画数順)に並べられた。
 さらに、1990年10月には6,067文字の補助漢字文字セット(JIS X 0212-1990)が制定されました。この文字セットとJIS X 0208-1990を合わせれば12,946(うち漢字は12,156)の標準文字が使えることになるが、この補助漢字をサポートする製品はほとんどないのが実状である。
 2000 JIS (X 0213) 1997 JIS(X 0208:1997)の公開後、引き続き検討されてきたJIS漢字コードの拡張(第三水準及び第四水準)が、2000年1月20日にJIS X 0213:2000として制定された。X 0213はX 0208の6,879文字にさらに4,344文字を追加して合計11,223字が規定されている。この追加により、従来は「機種依存文字」とされていた○付数字や、JIS批判の標的になっていた人名漢字の多くが正式な規格になった。
 ただ、この規格がパソコンなどに実装されるには、Unicodeとの関連もあってしばらく時間がかかると見られている。アップルコンピュータは、次期OSのMacOS Xで2000JISに対応した新フォントを搭載し、Unicodeに登録された文字から順次収録するとしている。

【Shift-JIS】
Shift-JISはクライアントOS(WindowsやMacOS)で主に用いられている文字コードで、これにはほかの文字コードセットにはない半角カナを備えているのが特徴である。 現在パソコンの多くで使われている文字コードで、SJIS、MS漢字とも呼ばれる。これは1バイト仮名(X 0201)で未定義領域になっている部分を使って漢字(X 0208)を表現することで、エスケープシーケンスなしで1バイト文字と2バイト文字を共存できるようにしたものである。そのためにJISコードを移動(シフト)させたことからこう呼ばれている。
 シフトJISでは、10進数の129~159、224~239(0x81~0x9F、0xE0~0xEF)の範囲のバイトが現れると2バイトモードが開始され、このバイトは2バイト文字の第1バイトとして処理される。続く第2バイトは64~126、128~252(0x40~0x7E、0x80~0xFC)の範囲でなければならない。第1バイトの範囲は、英数字(ASCII、0x21~0x7E)や1バイト仮名(半角カナ、0xA1~0xDF)と重複しないように配置されている。JISコードとは簡単なアルゴリズムで相互変換が可能である。
 このように、このシフトJISのコードは8ビット目も使用しているため、電子メールで流すときはJISコードに変換する必要がある。事実上日本で最も普及している文字コードであり、文字セット切り替えがないので扱いも簡単というメリットがあるが、コードが分断されており体系として不自然なため漢字処理に一家言を持つ人の間では嫌われているようである。
 また、この方式ではJIS X 0212-1990の補助漢字文字セットを使う方法がないこと、ユーザー定義領域にメーカー独自の「外字」を割り当てたため、相互の情報交換やほかの方式への変換ができないケースがあるなどの問題も抱えている。

【EUC】
 EUCは主にUNIXで用いられている文字コードで、Linuxを含むUNIXではこちらが標準に用いられている。日本語EUCもJISコードと同じくJIS 0208の文字セット規格をISO 2022-1993に基づいて符号化する。EUC自身は、日本語だけでなく複数の文字セットを同じテキスト内で処理することが可能である。
 EUCには可変長コードと固定長コードの2通りあるが、一般的なのは可変長(圧縮フォーマット)の方である。簡単に言って4とおりの文字セットが使い分けられる。
 ASCIIに相当する部分は1バイト(7ビット)で表現される。0xA0~0xFFの範囲の文字は、そのまま使われる場合は2バイト合わせてJIS X 0208の漢字(JISコードの8ビット目を1にしたもの)を表す。1バイト仮名は0x8Eという特別な制御文字(SS2)に続いて1バイトの文字コードを割り当てる。0x8Fという制御文字(SS3)はその後ろに2バイトの文字コードをとるが、このセットは一般に補助漢字に割り当てられる。

【UNICODE】
 国際標準化機構(ISO)は、世界中の主要な文字を一括して扱う多重言語文字セット規格UCS (Universal multi-octet coded Character Set)を1993年に制定した。これがISO/IEC 10646と呼ばれるもので、4バイトによる方式と2バイトによる方式の2通りがある。もともとこれは各国の国内規格との互換性を考慮したものとして考えられていたのだが、一方で、アメリカのコンピュータ・メーカーを中心とするUnicodeコンソーシアムがこれとは異なる、16ビットで従来方式とは互換のない統一コードUnicodeを打ち出してきた。国際標準が2つできてしまうのは非常に具合が悪いので、両者が歩み寄る形で、ISOの当初の案を変更して新しい標準を制定することになった。
 UnicodeはUCSの2バイト方式によるもので、256×256の升目を持つ二次元空間(Basic Multilingual Plane=BMPと呼ばれる)に65,536文字を割り当てることがでる。
 この中に中国語、日本語、韓国語(頭文字を取ってCJKと称される)の漢字2万文字あまりを配置している。それに当たっては、各国で用いられている漢字コード(全部を合わせると12万以上になる)から重複するものや意味、構造が同じものを統合し、まとめていくHan Unificationという作業が行われた(これについては厳しい批判がある)。日本の文字コードとしてはJIS X 0208-1990とJIS X 0212-1990がサポートされる。
 大まかに言えば、Unicodeにおける漢字の表現は、第1バイトを0x4E~0x9F(I領域)に割り当てたものである(第2バイトは0x00~0xFFの全領域)。JISコードとの規則的な変換ルールは存在しないので、個々の文字を対応させる変換表が必要になる。
 Unicodeは16ビット固定なので、文字列の操作が単純になる(と宣伝されているが)。2.0では38,885文字が割り当てられ、これらのコードポイントは永久的なアドレスとして信頼すべきものと(Unicodeの主張では)されている。一方、Unicodeでは従来の文字コードで想定されていたソートが保証されない。
 Windows NTやMacOS 8など内部コードとしてUnicodeをサポートするという環境も出始め、JavaはUnicodeをデフォルトのデータ型として定義した。Webの世界でも、最新のブラウザは(モジュールの追加により)Unicodeを表示できるようになっているし、HTML 4.0では基本文字セットをISO/IEC 10646とするなど、最近の展開は急速である。

ネットワーク・コンピュータの識別

2003年09月20日 22時39分54秒 | パソコン関係
【通信手順(プロトコル)】
 インターネットに代表されるネットワーク通信手順としてTCP/IPがあげられる。
TCP/IP がベースとなって Webサイト(通称ホーム・ページ)を照会するためのHTTPプロトコルによって、HTML(Webサイトの記述言語)をWebブラウザ(IEやNetScape) に送信している。インターネットは TCP/IP通信によってすべてが網の目のように結合されており、各ポイントはIPアドレスと呼ばれる位置を示す番地によって一意的に識別されていのである。

【DNSサーバーとは】
DNS とは、(Domain Name System)の略で、TCP/IP通信において、ドメイン名から、対応する IP アドレスを取得できるようにするシステムのことである。
DNSサーバーは、ドメイン名と IP アドレスの対応関係を記述したデータベースを管理しており、通常、ユーザーがWEBサイトにアクセスする際には、ブラウザのアドレス欄にドメイン名込みのURL(例:www.yahoo.co.jp)を打ち込んでアクセスされる。
しかし実際には、 例えば会社名をドメイン名としているURLや、ユーザーにわかりやすい形のそれらのURL だけでは、目的のWebサイトにアクセスすることはできない。
インターネット上の DNS サーバーは、巨大なツリー構造をなしており、世界中の DNSサーバーが 協力して1つのデータベースとして機能している。
ユーザーが、URL(www.yahoo.co.jp)を要求したとしする。そこで DNSサーバーは、ユーザーから要求のあった URL(ドメイン名)をもとに、まずインターネット上の rootDNS サーバーから jpドメインを管理している DNSサーバーを紹介してもらい、 jpドメインを管理しているDNSサーバーから、今度は、coドメインを管理しているDNSサーバーを紹介してもらう。 coドメインを管理しているDNSサーバーから、今度は、yahooドメインを管理している DNSサーバーを紹介してもらい、 yahooドメインを管理しているDNSサーバーは、自分の配下にあるIPアドレスを回答することにより、初めて通信が可能になる。
 この様に、DNSサーバーがツリー構造を構成することにより、各DNSサーバーは、自分のドメイン配下のDNSサーバーのドメインを管理するだけで、世界中からアクセス可能となっている。目的のURL(ドメイン名)を管理しているDNSサーバーを探し出して、IP アドレスを参照可能にし、アクセス可能にしてくれている。以上のような役割をはたしているのが、DNSサーバーなのである。

【ルーターとは】
 ネットワーク(LAN-LAN、LAN-WAN)間を相互に接続する装置のことである。ISO(国際標準化機構)の規定によるOSI参照モデル第3層 「ネットワークレイヤー」 の情報(いわゆる「ネットワークアドレス」のこと)を元に、ネットワーク間のパケットを中継する。これが「ルーティング」と呼ばれる処理で、ルーターとは文字通り、その実行役というわけである。
 ルーターには IP (Internet Protocol)だけをルーティングする IP ルーターや、 IP X(Internet Packet Exchange)やAppleTalkなどをルーティングできるものまで、扱えるプロトコルによってさまざまなタイプがあります。またLAN型ダイヤルアップ接続をサポートするダイヤルアップ・ルーターや、ISDN回線を使って複数のネットワークを接続するISDNルーターなどバリエーションも多彩である。 さらに専用機(ハードウェア・ルーター)のほか、パソコンやワークステーションに搭載してルーター機能を実現するもの(ソフトウエア・ルーター)もある。

【グローバルIPとは】
 社内 LAN がインターネットと常時接続されているとする。社内の各機器に勝手に IP アドレスを割り振ったとしたら、インターネットの別の拠点の IP アドレスと重複するかも知れない。このことを防ぐために構内(ローカル)用の IP アドレスとインターネット用の IP アドレスとは区別されている。このローカル IP に対して世界で唯一として与えられるのがグローバルIPと呼ばれるIPアドレスである。
 個人でホーム・ページを公開しているのであれば、そのWeb サイトには世界でただ1つしかないIPアドレス(グローバル IP )が割り振られているはずである。
 グローバル IP の取得は現在、使用しているプロバイダーによって契約上で与えられるので、問い合わせが必要となる。与えられたグローバル IP のそれぞれをどの機器(サーバー)に割り振るかは自分の勝手であり自由に設定することができる。

グローバル IP は1つだけで十分と思われがちだが個人サーバーとなると メイン以外にルーターや別の Web サーバー、メール・サーバーも必要になるので最低8個くらいは必要である。