2009年06月27日
OS Code Conv Table compatible with Informix's one
Informix ( OnLine Dynamic Server 7.20や Informix-NET 5.01 Windows版などから)は、稼働するOSのコードセット定義とは独立したコードセット定義やコード変換ルールを実装しています。
Informixを長年使っていて、プラットフォームの変更を考える場合、手持ちのアンロードファイルやソースファイルなどを、Informixのコード変換ルールでコード変換できないかな〜、と思うことがあります。
私も今、何か良い方法がないものか思案しているところです。
幸い、Informixの文字コード変換ルールそのものは、International Language Supplement に含まれている、xxxxyyyy.cv.gzというファイルを見れば厳密に知ることができます。
このファイルにある定義内容を、例えば iconvなどの定義ファイルに書き換えてあげれば何とかなりそうな気がします。このあたり、perlやらVB Scriptやら使えば簡単かな、と思います。
最近こんな記事を見つけました。AIXだとこれでいけそうな気がしないでもありません。
ひょっとすると、定義ファイルを作るときに、個別のコードポイントを「名前」でなく実際のコード表記(例えば\x81\x40のような表記)に換えてあげる必要があるかもしれませんね。そんな場合には、やはりILSのCDに含まれる
xxxx.cm.gz
あたりが参考になりそうな気がします。なお、ILSに含まれるこれらロケール関連のソースファイル(拡張子 *.gz ) は、該当のロケールをインストールすると$INFORMIXDIR/glsにコピーされるので、探しやすいかと思います。
以上、かなり個人的なInformixの覚え書き。。。
Informixを長年使っていて、プラットフォームの変更を考える場合、手持ちのアンロードファイルやソースファイルなどを、Informixのコード変換ルールでコード変換できないかな〜、と思うことがあります。
私も今、何か良い方法がないものか思案しているところです。
幸い、Informixの文字コード変換ルールそのものは、International Language Supplement に含まれている、xxxxyyyy.cv.gzというファイルを見れば厳密に知ることができます。
xxxxは変換元コードセット番号 ( コードセット番号と見慣れたsjis-s/ujisなどのコードセット名の関連は、$INFORMIXDIR/gls/cm3/registryを見ればわかります。)
yyyyは変換先
ファイル形式は、gz圧縮されたテキスト
このファイルにある定義内容を、例えば iconvなどの定義ファイルに書き換えてあげれば何とかなりそうな気がします。このあたり、perlやらVB Scriptやら使えば簡単かな、と思います。
最近こんな記事を見つけました。AIXだとこれでいけそうな気がしないでもありません。
ひょっとすると、定義ファイルを作るときに、個別のコードポイントを「名前」でなく実際のコード表記(例えば\x81\x40のような表記)に換えてあげる必要があるかもしれませんね。そんな場合には、やはりILSのCDに含まれる
xxxx.cm.gz
あたりが参考になりそうな気がします。なお、ILSに含まれるこれらロケール関連のソースファイル(拡張子 *.gz ) は、該当のロケールをインストールすると$INFORMIXDIR/glsにコピーされるので、探しやすいかと思います。
以上、かなり個人的なInformixの覚え書き。。。
Posted by oninit at 12:16│Comments(0)
│ちょっと細かいテックネタ
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。