FrontPage
大まかな流れ †
- [キーボード]→キーコード→[キーコード-文字コード変換]→文字コード
- 文字コード(主にASCII)→[かな漢字変換]→文字コード(漢字など)
- 文字コード→[エンコード]→通信用文字コード→[通信路]→通信用文字コード→[デコード]→文字コード
- 文字コード→[文字コード-フォント対応]→画像データ→[ディスプレイ]
文字コードの違いによるトラブル †
- 文字化け
- 誤解釈
- ソート順の食い違い
- ISO-2022-JP, EUC-JP, Shift_JIS は同じ順になるが、Unicode とは違う順になる。
文字コードの階層モデル †
- RFC 2130 では、CCS/CES/TES の3層モデルが示されている。
- CCS Coded Character Set
- コード化された文字集合のこと。文字に番号が付いた状態。コンピュータ上でのデータ列表現はここには定義されない。
- JIS X0208 の文字表とか、Unicode の文字表がここに相当。
- CES Character Encoding Scheme
- 文字エンコーディング方法のこと。番号とコンピュータ上でのデータ列表現とを変換する方法。
- Shift_JIS とか EUC-JP とか ISO-2022-JP とか UCS-2 とか UTF-8 とかがここに相当。
- TES Transfer Encoding Syntax
- 転送用エンコーディング文法のこと。
- BASE64 とか gzip とかがここに相当。(要はもう文字コードとはあまり関係ない。)
- UTR#17 http://unicode.org/reports/tr17/ では、5層モデルが示されている。(Unicode用)
- Abstract Character Repository
- 抽象文字リポジトリ。エンコードするための文字の集合。ここでは番号は付いていない。
- CCS Coded Character Set
- CEF Character Encoding Form
- ここで、単純なバイトへの変換をする。ここではバイト順は不明。
- たとえば UTF-16 がここに入る。
- CES Character Encoding Scheme
- ここで、バイト直列化を入れる。ビッグエンディアンとリトルエンディアンの問題がここに入る。
- たとえば UTF-16BE と UTF-16LE とがここに入る。
- (CM Character Maps)
- TES Transfer Encoding Syntax
- CCS は Character Coding Scheme の略ともされる。この場合、CESと同義。(おいおい…)
符号化文字集合(文字セット)(CCS) †
基本 †
- US-ASCII
- JIS X 0201 ラテン文字
- JIS X 0201 片仮名
- JIS X 0208-1978
- JIS X 0208-1983
- JIS X 0208-1990
- JIS X 0212-1990
- JIS X 0213:2000
- JIS X 0213:2004
- Unicode (UCS-4)
ベンダ依存 †
- NEC特殊文字
- NEC選定IBM拡張文字
- IBM拡張文字
合成されたもの †
- マイクロソフト標準キャラクタセット(Windows-31J)
- JIS X 0201 ラテン文字
- JIS X 0201 片仮名
- JIS X 0208:1990
- NEC特殊文字
- NEC選定IBM拡張文字
- IBM拡張文字
符号化方式(CES) †
- ISO 2022
- Shift JIS
- Unicode
- UCS-2
- UCS-4
- UTF-8
- UTF-16
- UTF-7
メモ †
- 漢字は大量のバリエーションを持っているが、安易に文字コードをつけていくとすぐにパンクする。
- 勝手な簡略字、書き間違いにまで文字コードを振っていたらきりがない。特に人名は、勝手な簡略字、書き間違いの宝庫。
- 文字コードをつけるには、どこでどう使われているのかの典拠が必要。
- 辞書に載っていないが広く使われているケースはある。(有名人名、地名、有名書籍)
- 広く使われている異体字には文字コードを与える価値はある。
リンク †
書籍 †
#amazon(4320121023, left)
#amazon(4899770510, left)
#amazon(4873111080, left)
#amazon(4798100307, left)
#amazon(4320029046, left)