情報科学 I

第 3 回

rtf と txt の違い

補足

1. MacOS 日本語とは異なる文字コード

テキストエディットでは標準テキストの編集において 読み込むテキストおよび保存するテキストの文字コードを 選択することができます。

2. Unicode について

Unicode は多言語対応文字コードで 2003 年 4 月 18 日現在で最新バージョンは Unicode 3.2.0 です。ユニコードコンソーシアムの Web サイトの URI は以下の通りです。
http://www.unicode.org/
Unicode の文字とコードとの対応表は以下の URI からダウンロードできます。
http://www.unicode.org/charts/
基本的に Unicode には文字を 32 bit でコードする方式と 文字を 16 bit でコードする方式の 2 種類があります。 ここでは基本的に文字を 16 bit でコードする方式を基に説明します。

3. UTF-16 について

UTF-16 は Unicode を (基本的には) 16 bit (2 バイト) のまま使う方式です。 ただし 16 bit を 8, 8 bit に分割して

UTF-16BE
順に記録する形式
UTF-16LE
逆順に記録する形式
UTF-16
順になっているか逆順になっているかのマークを付け足す

の 3 通りの方式があります。テキストエディットの UTF-16 で作成される 標準テキストのコードは 3 番目の方式です。
3 番目の順になっているか逆順になっているかのマークには以下の 2 バイトの データを用います。

FE FF
これ以降のコードはバイト順になっている
FF FE
これ以降のコードはバイト逆順になっている

テキストエディットの UTF-16 で作成される標準テキストのコードはバイト順です。 ファイルの先頭の 2 バイトは必ず FE FF というデータになっています。

- 例 -

ひらがな

4. UTF-8 について

UTF-8 は Unicode に基づき 8 bit を単位とするテキストファイルのコード方式です。 Unicode でのコード番号によって文字を以下の3種類に分類します。

  1. 1 バイトコード文字 (Unicode コード番号が 0000 〜 007f)
  2. 2 バイトコード文字 (Unicode コード番号が 0080 〜 07ff)
  3. 3 バイトコード文字 (Unicode コード番号が 0800 〜 ffff)
4-1. UTF-8 への変換
1 バイトコード
ASCII コードは規格では 7 bit です。 8 bit の先頭のビットを 0 にして残りの 7 bit を ASCII コードをそのまま用います。
2 バイトコード
Unicode の 16 bit を 先頭から 4 bit、6 bit、6 bit の 3 つの部分に分けます。 最初の 4 bitの部分は必ず 0000 であるので省略します。 次の 6 bit の部分の前に 11 を付け足し 8 bit にします。 最後の 6 bit の部分の前に 10 を付け足し 8 bit にします。 この 2 バイトであらわします。
3 バイトコード
Unicode の 16 bit を 先頭から 4 bit、6 bit、6 bit の 3 つの部分に分けます。 最初の 4 bitの部分の前に 1110 を付け足し 8 bit にします。 次の 6 bit の部分の前に 10 を付け足し 8 bit にします。 最後の 6 bit の部分の前に 10 を付け足し 8 bit にします。
- 例 -

ひらがな (3 バイトコード)

「こ」の例

  1. 「こ」の Unicode はコード表より 3053。
  2. 16 bit であらわすと 0011|0000|0101|0011。(ただし 4 bit 毎に | を記入。)
  3. 16 bitを 4, 6, 6 bit に分割すると 0011|000001|010011。(ただし分割する所に | を記入。)
  4. 4, 6, 6 bit の前にそれぞれ1110, 10, 10 を挿入すると 11100011|10000001|10010011。
  5. 16 進数であらわすと E3 81 93 という 3 bit になります。
  6. HexEdit で開いたテキストファイルの最初の 3 バイトは「こ」の字をあらわしています。

Valid XHTML 1.0! 2003 Apr 18, Fri
revised: 2004 Jun 14, Mon
MIYAKAWA, T.
takeshi@ls.toyaku.ac.jp
Tokyo Univ. of Pharmacy and Life Science