支那語(zh)対応開始

いよいよ、支那語への対応を始めました。

まずは、大陸から始めます。

今時点で、実装を終えたのは、次の読み込みまで。

EUC-CN (GB 2312)
GBK
GB 18030 (GBK2K)

以前の実装から、テーブルをそのまま持ってきた。
正確性を簡単に再確認したが、一応2000年時点では間違っていないようだ。

しかし、どうやら GB 18030-2005 なるものがあるらしく、何やら1文字程度ずれているような気がする。
実用的な技術資料が極めて乏しく、実装がかなり困難ですが、実装に役立つ資料をお持ちの方がいたら、連絡下さい。


とりあえず現状

・4バイトのGBK2Kから連番を作る処理は完成済み。
・GBK2Kの連番からUnicode文字を得る処理は、2000年頃の仕様の範囲では、恐らく動いている。
・以前の実装のUnicode→GBK/GBK2Kの変換表は、なんかおかしい。使えない。


以前の実装では、ごく普通に、U+0000~U+FFFFでテーブルを作り(途中に飛びはありますが)、16ビットの情報としてGBK2Kの連番を格納するような実装だった。
まぁ、この方がサイズは大型化しますが高速で良いのですが、実装しなおすとなると、どうしたものか一考の余地がありますね。

GBK2Kは、旧来のGBKの拡張で、Unicodeにある全ての文字を採用したものですが、GBKにあるものは無視し、附番します。
ですから、単純なアルゴリズムでは処理不可能で、どうしてもテーブル処理が必要になるわけです。


使えそうな符号表だと、XMLでこんなのがありました。
Mozilla Firefoxではハングアップするらしいです。お気を付け下さい。
http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml

見ての通りで、2バイトが旧来のGBK、4バイトがGBK2Kということで、大変なことになってるわけですね。

以前と異なるもう一つの実装の候補として、{ 範囲最初, 範囲最後, 連番ベース } といったものを延々と連ねていく方法があります。

とりあえず、このXMLを読み込んで、どっちかの表を吐き出すようなプログラムを書いてみようかと思っています。

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

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

▲ページトップ

コメント

コメントの投稿

簡体字支那語(zh-cn)に対応 ホーム ISO-646
トラックバック

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

カレンダー

08 | 2017/09 | 10
- - - - - 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