文字コードに対するいくつかの注意

ASCII コードは 7bit
上の表からわかるように, ASCII コードは 7bit です (最上位の bit は常に 0). しかし 今のコンピュータはデータを Byte単位で処理を実行しますので, 最上位のビットを 0 として, 8bit のコードになっています. ASCII コードが 7bit になった理由のひとつが, 1ページに挙げた参考書に書かれています.

文字コードは何種類もある
上でも言いましたが, 数と文字の対応表は他にもあります. ASCII 以外で代表的なのが大型汎用計算機 (Main Frame, 銀行のオンラインシステムなどで使われている)で使われている EBCDICと呼ばれる文字コードです.

日本語の扱い
日本語, 中国語, ハングルなどの文字数の多い言語では, 文字コードはより複雑になります. 日本語の文字コードの代表的な規格は, JISコード 2種類と, EBCDICの 3つです.

インターネットでは
通信に於けるデータ交換では, お互いの合意があればどのようなデータ交換も可能です. しかし, 通信をする度に文字コードをいちいち決めていたのでは大変です. そこで, インターネット通信で標準的に用いられる文字コードが決められています. 他の言語を一緒に送っても問題の出ない文字コードは, 日本語については, 昔の JIS コードから派生した iso-2022-jpという規格と Unicodeから派 生した iso-10646 という規格です.

過去のしがらみ
以前, JIS X 0201 1976 という 8bitの文字コードが定義されました. これは, 最初の 7ビッ トの部分を Asciiコードの 2カ所に変更を加え, 残った部分にカタカナを定義しました. この規格は日本のパソコンで多く用いられてきました. これは 2000 年に新しい JIS規格に吸収されましたが, その規格にソフトウェアが対応していないことが数多くあります. この規格で定義されているカナ文字が, 半角カナ文字と呼ばれる物です. 上にも述べたように, きちんとした規格通りに動作しないソフトウェ アが沢山あるので, これで定義されている半角カナ文字を使った文書を, 他人に送ったり渡したりしてはいけません. 迷惑行為です.

    Windows の日本語環境では, $\backslash$(バックスラッシュ) のコードに対して¥記号を表示しています. これはこの過去のしがらみ (JIS X 0201 1976)のためで, 実際には間違った表記となっています. 日本語以外の Windows では, $\backslash$が表示されます. また, JIS X 0201 1976 の前半 7bit 部分を Asciiコードと解説している Webページも沢山存在しますが, それらも間違ったコード表記です.

半角/全角
元々は印刷業界用語で, 文字幅の意味です. 文字コードには文字幅は定義されていず, 数と文字の対応だけが定義されています. 昔の多くの日本語環境で, 1byte 文字が 2byte 文字の半分の幅で表示されたため, 半角文字という俗称が生まれました. 2000年にはこの俗称を追認する形で JIS X 201 1976カナ文字 に half-width という名称がつきましたが, 今では意味がありません. この授業では(昔の風習を用いて) 1byte文字と言う事にします.

他の言語では
ASCII コードが合衆国でしか通用しないのは明らかです. ヨーロッパ圏やトルコ語, タイ語用の規格として多くで用いられていたのは, ISO-8859-1 – ISO-8859-16 と決められている物です. これら は最近, 下の UTF-8 に置き換わっていっているようです.

この講義では
この講義では, 主に UTF-8と呼ばれるコードを用います. これは上に述べた ISO-10646 の文字集合を符号化したもので, インターネットではデファクトスタンダード(de Facto Standard, 事実上の標準という意味のラテン語 + 英語) となっているものです.

昔, 日本で売られたパソコンでは
MS-Kanji と呼ばれる文字コード, およびこれから派生した文字コードが 使われていました. これはマイクロソフトウェア・アソシエイツ, 三菱電機, アスキー社6などが集まって定めた日本語の文字コードを少し変形したものです. 上で述べた, JIS X 0201 1976 の規格を 2byteにし, 増えた部分に JIS で定められた文字セットを少し番号をずらして割り振ってできたものです. 今でこそ, 過去との互換性のために国際的に登録された文字コードとなっていますが, 元となった JIS規格の規格違反をしている, 多数の方言がある, ASCII以(アメリカ語)外のコードとの共存ができない等, 問題点の多い文字コードです.

    なお, コンピュータは, 上で述べた main frameのように, パーソナルでないものもあります. 過去には, 何種類かの日本語文字コードが, コンピュータシステム毎に存在していました. それらの中で, 代表的なもののひとつが, EUC (Extended Unix Code) です.

文字コードはこれからも変化する
日本語に限っても 文字コードはまだまだ不完全な物です. これから先も変化し続けると考えられます. その変化を追いかける専門家になる事は不要ですが, その変化に対して合理的な行動がとれるように心がけて下さい. 現在でも, Unicode の空き領域に絵文字が多量に追加され続けています.

より詳しく知りたいなら
Wikipedia の文字コードの項 (https://ja.wikipedia.org/wiki/文字コード)は, 割と良く書けている. 本気で勉強するなら, 一冊の専門書を読む必要があります.

2024-04-26