台湾の符号

Windowsの対応する全コードページに対応する一環として、台湾のマイナーな符号に対応しました。

具体的には、次の6つのコードページです。名称はWindowsがAPIで持っているもの。

20000 繁体字中国語 (CNS) x-Chinese-CNS
20001 TCA 台湾 x-cp20001
20002 繁体字中国語 (Eten) x-Chinese-Eten
20003 IBM5550 台湾 x-cp20003
20004 TeleText 台湾 x-cp20004
20005 Wang 台湾 x-cp20005

簡単に説明しておきます。

> 20000 繁体字中国語 (CNS) x-Chinese-CNS
これはDECの符号と同様EUC系で、2バイト目にGLを使う拡張をして領域を倍にしたものです。
処理はDEC HANYUと共通化しています。
2バイト目GRの通常でCNS 11643-1、2バイト目GLの拡張でCNS 11643-2が使用可能です。

> 20001 TCA 台湾 x-cp20001
> 20002 繁体字中国語 (Eten) x-Chinese-Eten
朝鮮語のUHC風のCESを採用した符号です。
但しEUCを拡張して、拡張された領域に文字を配置、というわけではなく、シフトJISと同様に符号だけあらかじめ用意して、順番に文字を割り当てています。
20001と20002で、1バイト目の拡張方法は違いますが、2バイト目の仕様は同じです。
文字の配置方法が違っているので相互の互換性はありませんが、文字集合はCNS 11643-1とCNS 11643-2をシフトして採用しています。


> 20003 IBM5550 台湾 x-cp20003
これは、1バイト目の仕様こそ違いますが、2バイト目の仕様がシフトJISと同等の符号を用いたものです。
大陸簡体でSHIFTGBなるものがありますが、そのCCSをBig5に置き換えたものと言えます。SHIFTBig5と言ったところでしょうか。
変換表参照のために必要なシフトJIS系とBig5系の符号位置の相互変換が苦戦しましたが、後に説明する20005よりは楽でした。
なお、CCSはCNSではなくBig5なので、重複文字があります。


> 20004 TeleText 台湾 x-cp20004
EUC系の符号で、2バイト目にGLを拡張して領域を倍にした符号化方法を採用した符号です。
但し文字集合は完全に独自のようなので、専用の変換表を用意しました。
CP20004→Unicodeのみ作りました。
需要無さそうなのにUnicode→CP20004で容量を割くのも勿体ない気がしたので、Unicode→CP20004の処理では、CP20004→Unicodeの変換表を頭からなめていって一致したところで出力するという、想定される中で最も処理が遅かろう方式を採用しました。
処理速度より、サイズを最優先したオプティマイズと言えます。
変換表作成を除けば、処理自体は10分掛からず出来たと思います。


> 20005 Wang 台湾 x-cp20005
今まで見た中で、最も「汚い」台湾正體の符号ですね。
符号は独自で、2バイト目は173種類あります。94の倍数ではありません。
その上、文字集合がBig5です。Big5の2バイト目は157種類ですので、変換の計算が大変なことになりました。
更に良くないのは、符号の境目が整っていないことです。常用字は0x8fccから、次常用字は0xaef3からと、入力にせよ出力にせよ、変換表を参照するために面倒な計算が必要な上にその式の共通化を困難にしています。
とりあえず、今日の午前中に何とか出来ました。


とりあえず、この六種類については、次のβバージョンから対応しますので、台湾のお知り合い等で、このような符号に需要がある方がおられましたら、実際に試して戴けるようお知らせ戴けると幸いです。

次のβは、今夜か明日土曜に公開予定です。

2009/10/23(金)13:00 |Comments(0) |Trackback(0)

製造開発 | ソフトウェア開発 | コンピュータ | [編集]

▲ページトップ

コメント

コメントの投稿

n3711 ホーム コードページ20005
トラックバック

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

カレンダー

05 | 2017/06 | 07
- - - - 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 -

プロフィール

miraicorp

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

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

twitterツイッター

管理用

検索フォーム

お知らせ

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

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

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

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

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

広告枠

メール

メールはこちら

リンク

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

RSSリンクの表示

QRコード

QR