正字体支那語(zh-tw)作業開始

今日は、Big5の入力処理を書いた。


互換性の無い集合


Big5は台湾の符号ですが、文字集合が無数にあり、それぞれで互換性がない。
そのような理由で、処理が非常に困難を極めています。

とりあえず、次の文字集合の入力(encode)に対応した。

Big5-1984
Big5-2003
Big5-ETEN
CP950 (Windows)
Big5-HKSCS-1999
Big5-HKSCS-2001
big5-uao (Firefox 3)

実際には、まだ色々とあるようです。


集合の特徴


Big5は、文字コードの範囲が細かく別れています。
JISと同様に第一水準、第二水準、というような大枠はありますが、それが更に細分されており、それぞれに好き勝手な文字を入れているため、相互に互換性がない。

このような状況下、まず入力を作るに際し、どのように変換表を作るべきか。これを3秒ほど熟慮した結果、各部位ごとに表を分ける、という方針とした。
変換ルーチンでは、コードの範囲をif文でみて、更に文字集合を確認して、そして必要な変換表を使うこととした。他に選択肢がないともいう。


Firefoxの集合は何か変だ


こうして、普通のBig5、ETEN、Windows、HKSCSあたりまで対応したところで、遂に大いなる疑念が生じた。
試験に使っているFirefoxだが、このBig5の文字集合は一体何なのだろうか。
どうも、標準的なEtenやWindowsとも違うし、HKSCS風だけど微妙に違う。
何よりおかしいのは、JIS X 0213で追加された濁点付き平仮名う とか、濁点付き片仮名ワ とかがあるし、ご丁寧に半角カナまで入っている。

調査した結果、これはほぼMozillaプロジェクトの独自規格のようで、big5-uao 「BIG5 Unicode 補完計画拡張コード」なるものであるらしい。


big5-uao


今日、独自に調査した範囲内で、分かったことを以下にメモしておく。

Big5には、最初と最後と中間に、外字領域や予約領域がある。
ここに独自に文字を割り当てるのは、HKSCSその他、既存の拡張とほぼ同じコンセプトである。ゆえに、普通に使う分には、つまり漢字や基本的な非漢字類については、他の実装、例えばWindowsの実装と、概ね互換性を有しています。

big5-uaoには、次のような特徴があります。

・8140‐A0F0 : 使用者造字區。いわゆる外字領域。既存の集合に無い、Unicode漢字(繁体)や記号類を追加。
・A140‐A373 : 符號區、全形英文字母、全形希臘字母。Eten等と同じ。
・A374‐A3BF : 注音符號。Eten等と同じ。
・A3C0‐A3E0 : 控制符號
・A3E1 : 歐元符號。つまり€、ユーロ通貨記号。
・A3E2‐A3FE : 保留。外字U+F849からU+F865に割り当てている
・A440‐C67E : 常用字。いわゆる第一水準。標準通り。
・C6A1‐C6BE : 數字符號。○数字、括弧数字、ローマ数字。Windowsには無いが他のCCSには有る。
・C6BF‐C6D7 : 標準では「部首」だが、ここにHKSCSと同様のCJKを配置
・C6D8‐C6E6 : 罕用符號。HKSCSの配列に準拠。Etenとは非互換。
・C6E7‐C77A : 日文平假名
・C77B‐C7F2 : 日文片假名
・C7F3‐C8FE : 標準では「保留」だが、ここにキリル文字、JIS X 0213の拡張かな文字の一部や、いわゆる半角カナ文字が追加されている。
・C940‐F9D5 : 次常用字。いわゆる第二水準。標準通り。
・F9D6‐F9DC : 七個倚天外字集的擴充字。EtenやWindowsなどと同様。
・F9DD‐F9FE : 表格符號。いわゆる罫線。EtenやWindowsなどと同様。
・FA40‐FEFE : 使用者造字區和新常用字。いわゆる外字領域。既存の集合に無い、Unicode漢字(繁体)や記号類を追加。

一部については、Eten/WindowsではなくHKSCSと同様の実装がされているが、基本的に他の集合と互換性はない、独自の文字集合となっています。

現在のFirefox 3の実装とは若干異なりますが、Mozilla Taiwanのサイトのかなり古い記述に、「Unicode 補完計劃 2.30 alpha for Mozilla/Netscape win32」というものを見つけました。
http://forum.moztw.org/viewtopic.php?p=5529


なお、幾つかの文字について重複登録が確認されています。意図した仕様なのか、あるいはバグなのかは定かではありませんが、このまま放置するのは良くないと考えます。

それに漢字の中に突如記号が出てきたり、アクセント付きラテン文字の中に突如漢字が交じったりと、とても正常な設計がされているとは思えない異常な集合になっています。
このままで本当に良いのかどうか、疑問を感じざるを得ない。

2008/12/11(木)21:58 |Comments(0) |Trackback(0)

製造開発 | プログラミング | コンピュータ | [編集]

▲ページトップ

コメント

コメントの投稿

正字体支那語(zh-tw)の出力 ホーム 簡体字支那語(zh-cn)に対応
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
▲ページトップ

カレンダー

04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

プロフィール

miraicorp

Author:miraicorp
未来情報産業(株) 社長

主として「ICカードこれひとつ」や「文字、文字コード」処理、時々C++などについて記述しています。

twitterツイッター

管理用

検索フォーム

お知らせ

コメント等お気軽にどうぞ。

気に入ったら拍手して頂けると、今後の記事を書く際の参考や励みになります。

■お仕事を募集しております
ソフトウェア製造の仕事や、原稿執筆の仕事などを随時受け付けております。
お気軽にご相談下さい

■初めての方へ
こまごまと更新しているため、他にも関連する記事があるかもしれません。
「月別アーカイブ」「検索フォーム」「カテゴリ」などをお試し下さい。
トップページはこちら

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

広告枠

メール

メールはこちら

リンク

このブログをリンクに追加する

RSSリンクの表示

QRコード

QR