-
Couldn't load subscription status.
- Fork 0
CharCode
nanakira edited this page Aug 18, 2016
·
1 revision
- 文字とそれに対応するビット組み合わせを対応付ける規則を文字コードという
- 文字コード = 符号化文字集合 = 文字集合を定義し、その集合の各文字に対応するビット組み合わせを一意に定めたもの
- 7 bit 文字コード標準
- ASCII を国際化したもの。共通部分と、各国規格で自由に割り当てられる部分に分かれている
- システム内部で処理用に使われる内部コードと、入出力に使われる外部コードとは、同じである必要はない。
- PC 用の OS は内部コードとして Unicode を採用するものが多い
| Hex | code | 意味 |
|---|---|---|
| 0x07 | BEL | ビープ音を鳴らす |
| 0x09 | HT | 水平タブ (垂直タブは 0x0B) |
| 0x0D | CR | キャリッジリターン |
| 0x0A | LF | ラインフィード |
| 0x1B | ESC | エスケープ |
- アメリカ以外でも使えるように、 ISO/IEC 646 各国版が生まれた
- 日本は JIS X 0201 として標準化
- バックスラッシュが円に
- チルダがオーバーラインに
- でもドイツ語とフランス語を同時に表現できない
- 8 ビットコードや 2 バイト(複数バイト)コードの導入で、複数の符号化文字集合を組み合わせて使用可能に。
- 7 ビットコードを 2 面(GL/GR)持ち、制御文字によって任意の文字集合を呼び出して使う。
- 0x21-0x7E の 94 x 94 = 8,836 文字収録可能
- これも GL または GR に呼び出し可能。1 文字表現するのに 2 バイト必要
- アジアでは各種2バイトコードが普及(扱う文字数が多いため)
- 1978 年制定 6,879 文字収録
- JIS 第 1・第 2 水準漢字を定める
- 漢字以外にも、ひらがな、カタカナ、ラテン文字、ギリシャ文字、キリル文字、算用数字、各種記号類も包含
- 1バイトコード(ASCII) に含まれる文字も、JIS X 0208 では別の表現となる
| 文字コード | A | B | C |
|---|---|---|---|
| ASCII | 41 | 42 | 43 |
| JISX0208 | 23 41 | 23 42 | 23 43 |
- 1バイトコードで表現できる文字は従来通り1バイトコードで使いたい -> Shift_JIS, EUC-JP, ISO-2022-JP
- EUC-JP/ISO-2022-JP は ISO/IEC2022 に則っているが、Shift_JIS はそうではない
- ヨーロッパでは1バイトコードが普及
- GR 領域に各国固有文字
- 西ヨーロッパをカバー
- 他にも ISO/IEC 8859-X が10種類以上
- 日本版の ISO/IEC 646, 空き領域にカタカナ収録
- 空き領域31文字 → Shift_JIS で活用
- JIS X 0208 の空き領域を使って、各ベンダがベンダ定義外字(機種依存文字)を定義した
- JIS X 0208 にない文字を補うため、JIS X 0208 とあわせて使う
- Shift_JIS で扱えない
- JIS X 0208 を包含する、「完成版の JIS X 0208」
- JIS2000, JIS2004 とも呼ばれる
- 94 x 94 を2面使用
- Latin-1 の作り直し
- 使用頻度の少ない文字の代わりにユーロ記号等を採用
- ISO/IEC10646 = UCS(Universal Multiple-Octet Coded Character Set) = Unicode
- Unicode は最初の 128 符号位置を ASCII 同等に、次の 128 符号位置を ISO8859-1 と同等にしている -> Latin-1 から Unicode への変換は各バイトに 00 をつけるだけでよい
- ASCII + JIS X 0208 + JIS X 0201 片仮名集合 + JIS X 0212
- GL 領域は ASCII 固定、GR 領域を残り3つ切り替え
- JIS X 0208 と JIS X 0212 は 2 byte
- RFC1468 メール向けに考案
- 7 bit の符号化方式
- ASCII + JIS X 0201 + JIS X 0208 (1978) + JIS X 0208 (1983)
- (7 bit だから)GR 領域を一切使用せず、GL 領域をエスケープシーケンスで切り替え
- 7 bit しか使えないメールに最適
- JIS X 0201 の隙間に JIS X 0208 を変形の上押し込んだもの
- 計算式が複雑
- 正しく解釈しないプログラムがエスケープ文字と誤認識するケースがある
- Windows の機種依存文字つきの Shift_JIS = CP932 (MS932)
- Unicode 直系。
- BMP の文字は 16 bit で、BMP 以外の面の文字はサロゲートペアを用いて 32 bit で表す。
- サロゲートペア - BMP の中の文字割り当てのない符号位置2つを用いて BMP 外の面の符号位置を指す
- エンディアンの違いの問題がある。
- BOM(Byte Order Mark) U+FEFF を使ってエンディアン判別可能。 FEFF -> ビッグエンディアン FFFE -> リトルエンディアン
- すべての文字が 32 bit
- 現状あまり使われていない
- 1つの符号位置に1バイトから4バイトをとりうる可変長の符号化形式
- ASCII と互換、0x7F 以下のバイトは常に ASCII とみなせる
- 2 byte 文字集合
- チベット文字、アラビア文字、モンゴル文字を含まない
- EUC-CN: GL ASCII, GR GB2312
- 最大 4 byte の可変長
- GB2312 の上位互換
- 台湾 伝統的な字体 繁体字
- 1 byte 2 byte 混在
- Shift_JIS と似た構成で、ASCII はそのまま扱える
- 携帯電話の絵文字 Shift_JIS の空き領域に各社独自に絵文字を割り当てた
- Unicode への絵文字取り込み ♨⤴🌋😊