「プログラマのための文字コード技術入門」で勉強中(3)
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)
- 作者: 矢野啓介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 33人 クリック: 544回
- この商品を含むブログ (121件) を見る
- 文字符号化方式(character encoding scheme)
- JIS X 0201
- 8ビット符号
- 7ビット符号
- ラテン文字用7ビット符号
- 片仮名用7ビット符号
- ラテン文字・片仮名用7ビット符号
- SHIFT-OUT(0x0E), SHIFT-IN(0x0F)
- JIS X 0208
- EUC-JP
- ASCII, JIS X 0208, (JIS X 0201 片仮名, JIS X 0212 補助漢字)
- SS2(0x8E), SS3(0x8F), シングルシフト
- 国際基準版・漢字用8ビット符号
- 重複符号化の問題
- ISO-2022-JP
- RFC 1468
- ASCII, JIS X 0201ラテン文字, JIS X 0208
- 7ビットの環境
- Shift_JIS
- JIS X 0201, JIS X 0208
- SJIS, シフト符号化表現, MS漢字コード
- JIS X 0201
- 第1バイト: 0x81 - 0x9F, 0xE0 - 0xEF
- 第2バイト: 0x40 - 0x7E, 0x80 - 0xFC
- 第1バイト(S1)の計算
- 1<=k<=62 のとき、S1 = (k - 1) ÷ 2 + 0x81
- 63<=k<=94 のとき、S1 = (k - 1) ÷ 2 + 0xC1
- 第2バイト(S2)の計算
- kが奇数の場合
- 1<=t<=63 のとき、S2 = t + 0x3F
- 64<=t<=94 のとき、S2 = t + 0x40
- kが偶数の場合
- S2 = t + 0x9E
- kが奇数の場合
- 計算の結果第2バイトが0x7E以下になることがある
- 「美」の第2バイト 0x5C は ASCII のバックスラッシュにあたる
- 重複符号化の問題
- Windows, CP932, MS932, Windows-31J
- Mac, MacJapanese
- Unicode
- UTF-8, UTF-16, UTF-32
- UCS Transformation Format, Unicode Transformation Format
- UTF-16
- UTF-32
- UCS-4
- BOM, U+FEFF, (BE: FE FF 00 00), (LE: 00 00 FF FE)
- UTF-32BE, UTF-32LE
- 文字データベース: http://www.unicode.org/Public/UNIDATA/
- UnicodeData.txt
- UTF-8
- ASCIIと互換性がある
- ISO/IEC 10646, RFC 3629
- 1つの符号位置の表現に1バイトから4バイト(または6バイト)までの長さを取り得る、可変長の符号化方式
- UCS-4の全領域を符号化する場合には6バイト必要
- 計算方法
- 符号位置によってバイト列への対応が変わる
- 0x00000000 - 0x0000007F: 0xxxxxxx
- 0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx
- 0x00000800 - 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
- 0x00010000 - 0x0010FFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- 冗長性の問題: 冗長な表現を避けて最も短いバイト列に符号化すること
- BOM付きUTF-8の問題
- CESU-8
- Modified UTF-8