Unicode †
Unicode には数多くの規格があります。
pTeX / upTeX に関係する範囲で必要なものをまとめてみます。
ptetex3 における Unicode サポート活動 †
- UTF-8対応
- ptex, jbibtex などの限定的サポート
- UTF-8対応(2)
- 共通処理をライブラリ libkanji に切り出して全ツール対応
- UTF-8対応(3)
- ロケール対応と文字コード自動判別機能の追加
- UTF-8対応(4)
- ライブラリを ptexenc として独立させ upTeX とすり合わせる
- UTF-8対応(5)
- 情報の整理しなおしと platex-euc などの廃止
Unicode or ISO/IEC 10646 †
Unicode と言っても、似たような規格が2つあります。
| Unicode (The Unicode Standard) | UCS (Universal Character Set) |
|---|
| 策定団体 | ユニコードコンソーシアム | 国際標準化機構 (ISO) |
|---|
| 文字集合の大きさ | 21bit | 31bit |
|---|
| "UTF"の正式名 | Unicode Transformation Format | UCS Transformation Format |
|---|
| 代表的なエンコーディング | UTF-8, UTF-16, UTF-32? | UTF-8, UTF-16, UCS-2, UCS-4? |
|---|
| UTF-8の1文字 | 1〜4byte | 1〜6byte |
|---|
文字の範囲 †
代表的な文字が Unicode のどの部分にあるのかまとめてみます。
通常我々の使う文字のほとんどは U+FFFF までに収まっています。
この範囲は、当初 Unicode として策定されていた文字集合で、
BMP (Basic Multilingual Plane) と呼ばれています。
| 文字の範囲 | UTF-8表現 | UTF-16表現 | 代表的な文字 |
|---|
| U+0000〜U+007F | 1byte | 2byte | ASCII の 7bit 文字 |
| U+0080〜U+07FF | 2byte | Latin-1、ギリシャ、キリル文字 |
| U+0800〜U+FFFF | 3byte | JIS漢字の第1,2水準すべて JIS漢字の第3,4水準の一部 |
| U+10000〜U+10FFFF | 4byte | 4byte | JIS漢字の第3,4水準の一部 |
| ASCII | aA1# |
|---|
| 全角英数 | aA1# |
|---|
| ギリシャ・キリル文字 | αΑжЖ |
|---|
| ひらがな・カタカナ | あをヴ |
|---|
| JIS X 0208(第1,2水準?) | 亜龜瑤 |
|---|
| 機種依存文字 | ○付き数字・はしご高 |
|---|
| 土吉 |
| ? | う゛ |
|---|
エンコーディング †
文字に割り当てられた文字コードは同じでも、
バイト列に置き換えたときにどのように表現するか、
いろいろな方法が考えられます。
| 一文字のバイト数 | 上限 | 備考 |
|---|
| UTF-8 | 1〜4byteの可変 | U+10FFFF | アルファベットに限れば普通の ASCII と同じ、左記はUnicodeの場合 |
| UCS-2 | 2byteの固定 | U+FFFF | 範囲内では UTF-16, UTF-32/UCS-4の下位2byte と同じ |
| UTF-16 | 2,4byteの可変 | U+10FFFF | U+FFFFの範囲内は UCS-2 と同じ、同範囲超はサロゲートペア |
| UTF-32 | 4byteの固定 | U+10FFFF | 範囲内では UCS-4 と同じ、最上位部 1byte は必ず 0 |
| UCS-4 | 4byteの固定 | 0x7FFFFFFF | 0x10FFFF以下では UTF-32 と同じ |
| Unicodeスカラー値 | U+10FFFF | 上記のような符号化表現ではなくて整数値 |
リンク †