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 | 上記のような符号化表現ではなくて整数値 |
リンク †