朝鮮語の処理

朝鮮語の変換DLLがやたら巨大なのが気に入らなかった。

そこで、次の仕様変更をした。

① Johab→Unicode、Unicode→Johabの変換はアルゴリズムに変更
② EUC-KR/UHC→Unicodeの変換表を作り直した


Johabの変換


Johabは、ハングルの部品(字母)ごとに5ビットを与え、最上位ビットを1にした符号。
字母ごとにビットパターンが決まっているので、Johab関係の変換は、全てアルゴリズム的に行なうことが可能です。

古い実装では速度等の都合か変換表を使っていましたが、今時カリカリチューンも無いので、ロジックを作りました。

結果、Unicode→Johabは、テーブルは一切使用しないことになった。
Johab→Unicodeは、ハングル部分はアルゴリズムで処理し、所々混ざる字母はテーブル、そしてKS X 1001部分は、EUC-KR/UHC→Unicode変換表を使って処理することにした。


UHCの変換表


従来の実装から持ってきた表は、特に難しい加工もないものでしたが、そのままでは資源が無駄な気がしたので、要らない部分を削除することにしました。

0x81‐0xc6と0xc7‐0xfdの二つに表を分けた。
0x81‐0xc6は、第二バイト0x41‐0xfeの190列分の表を区ごとに用意
0xc7‐0xfdは、第二バイト0xa1‐0xfeの94点分の表を区ごとに用意、但し文字のない0xc9行は抜く
このような感じにした。

EUC部分に文字がない0xad‐0xaf行はどうするかなぁと考えたけど、無駄なまま残してしまった。


Unicode→UHC


無駄な部分は削ってはいるけど、こればっかりは如何ともしがたい。
ハングル部分はアルゴリズム化できそうな気もするけれど、多分気のせいだろう。



今後の計画


これで、南朝鮮語のDLLもだいぶ小型化された。

次は北朝鮮語の、文字コードマニアには有名な「KPS 9566」をやってみたいところ。
首領様や将軍様の名前には専用のコードポイントが用意されているあたり、流石と言わざるを得ない。金と日は共通化できそうなもんだが、別々になっているようだ。
この文字はUnicodeの互換文字領域にすらないので、内部でどう持つかは一考しなければならない。
Unicode的には、Variation Selectorとか使うことになるのだろうか。しかし異体字ではないからなぁ。ただのBOLD体に過ぎないし。謎。


つまり、次の朝鮮語関係は、KPS 9566-97で「EUC-KP」や「ISO-2022-KP」とか名前見ただけで興奮しそうなものを作る予定。
KPS 9566-2000という版もあるようだが、97との差異は定かではない。

古いもので、非互換の「KPS 9566-93」もあるようだが、仕様が定かではないので実装は難しいか。

最新版は「KPS 9566-2003」で、ISO/IEC 2022では無くなってしまったらしい。
UHC相当の拡張が施されている模様。
新規にUnicodeに追加された文字はマッピングが変更になっているなど、互換性も一部無いようだ。



KPS 9566-97はISO-IR-202として資料がある。
KPS 9566-2000は資料がない。

KPS 9566-2003は、openoffice.orgに変換表を見つけた。しかし、これは猛烈に使いにくそうだ。

KPS 97と2000がほぼ同じと仮定すると、97/2000の変換表と、2003の変換表をそれぞれ作ればよいようだ

実際に変換表を作るとなると、相当な作業になりそうではあるが。

2008/12/28(日)15:10 |Comments(0) |Trackback(0)

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

▲ページトップ

コメント

コメントの投稿

Unicodeのバージョン ホーム 96図形文字集合 拡充
トラックバック

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

カレンダー

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