もう3日くらい文字コードと戯れています。おかげで文字コードにだいぶ詳しくなってきました。
ISO-2022-JPについて
- JISコードはエスケープシーケンスでASCII文字のコードか漢字のコードか切り替える
- 一言にJISコードといっても策定されたバージョンがいくつかある
- メールなどの普通のJIS文字を扱うなら、1997年のJIS X 0208を相手にしていればOK。
- 第3水準、第4水準の漢字を含めたJISなら、JIS X 0213(通称:JIS2004、ISO-2022-JP-2004)を使う。
- JIS X 0213はIANAに登録されていない(Wikipedia調べ)らしいのでメールの標準エンコードとしては使えない。
- JIS X 0213は下位互換(JIS X 0208を包括)
- JIS X 0213でエスケープシーケンスが増える。
Unicode(UTF-16)について
- Unicodeも何回もバージョンアップしているんですね
- Unicodeへの変換はアルゴリズムではできず、変換テーブルを使う必要がある
- 変換テーブルは、Unicode Consortiumとかこちらとかにある。
- JIS X 0213の変換テーブルはこちらなんかがヒットした
- JIS X 0213の文字までUTF-16に変換しようものならサロゲートペアを考慮しなければならない
- Windows VistaからサロゲートペアのUTF-16も扱っているから、プログラム書くときは結局このあたりも考慮しなければならない
- サロゲートペアってのは4バイト(UTF-16文字*2文字)使って1文字を表す方法。Ansi文字における2バイト文字みたいなものか?(ってか結局2文字かよ!Unicodeになっても後続文字かどうかを判別しなければならないなんて...)
- ちなみにDelphiでサロゲートペアを考慮するときはEmbarcaderoのページが役立つと思う
タグ : ISO-2022-JP,JIS,UTF-16,Unicode,サロゲートペア
2009/11/07 07:28:41 | Trackbacks (0) | Comments (0)
| Technology