next up previous
Next: 実習 Up: 2進法, 16進法, ASCIIコード Previous: 2進法, 16進法, ASCIIコード

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

ASCIIコードは 7bit
上の表からわかるように, ASCIIコードは 7bitです. しかし今のコンピュータは データを Byte単位で処理しますので, 最上位のビットを 0 としてそこに 埋め込まれます.
文字コードは何種類もある
上でも言いましたが, 数字と文字の対応表は他にもあります. 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 7の日本語環境では, \ のコードに対して¥記号を 表示していますが, これはこの過去のしがらみのためで, 実際には間違った 表記となっています.

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

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

この講義では
この講義では, 主に UTF-8 と呼ばれるコードを用います. これは上に述べた ISO-10646とほぼ同じです.

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

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

より詳しく知りたいなら
Wikipedia(http://ja.wikipedia.org/) の文字コードの項は良い出来.


next up previous
Next: 実習 Up: 2進法, 16進法, ASCIIコード Previous: 2進法, 16進法, ASCIIコード

2013-05-10