2007年08月08日

4GL and UTF8 / GB18030-2000

Summary in English...
If you use Informix SQL/4GL/dbaccess, or any other Informix full screen CUI applications with UTF-8 or GB18030-2000 codeset, you need to set an environment variable GL_USEGLU to 1. Before you compile 4GL apps, and run 4GL/I-SQL apps you need to set GL_USEGLU as well. Unless GL_USEGLU, you will get incorrectly-displayed full screen user interface.
--------------------------------------------------------
以前にも何度か書いたと思いますが、
( 最近の記事は http://oninit.ti-da.net/e1391371.html )
CLIENT_LOCALEを UTF-8 ベースのロケールや、GB18030-2000のロケールにセットして
Informix 4GL などのフルスクリーン・アプリケーションを動かす場合、環境変数GL_USEGLUを1
に設定しないと画面が崩れます。以下、dbaccess での例です。CLIENT_LOCALEにGB18030-2000を指定して、GL_USEGLUを設定した場合としなかった場合のdbaccessのメニュー画面を見てください。GL_USEGLUを設定していないと、中国語(漢字)のメニュー・オプションの表示位置がずれているのがわかると思います。

dbaccess screenshot

GL_USEGLUは、Informixに組み込まれているIBM GLUライブラリー ( Unicodeサポートのた
めにIBMが開発した汎用ライブラリー)を使用するか否かを指定する環境変数です。この環
境変数を設定してあると、Informixは、GLSライブラリーではなく、IBM GLU ライブラリーを
使って文字操作の処理を行います。IBM GLUライブラリーを使用すると、Unicodeで決めら
れている並べ替え順序規則などを使用できるようになります。

Client SDKで提供されているAPIは、Informixが以前から提供しているGLS
ライブラリーと、IBM GLUライブラリーのどちらを使用しても最低限の機能を使用することがで
きます。なので、GL_USEGLUは、UNICODE準拠の並べ替え規則などを必要としないので
あれば必須ではありません。( Updated 2007-11-03: 以下のIBM情報源:
http://www-1.ibm.com/support/docview.wss?uid=swg21220610
によると、Unix クライアントからデータベースサーバーに接続して UTF-8 などのコードセットを使う時には、GL_USEGLUを設定しなければならないそうです。)

しかし、Informix 4GL ( .. その他テキストベースのフルスクリーンアプリケーション ) のフル
スクリーン画面は、IBM GLUライブラリーを使用しないと、UnicodeやGB18030ベースのロ
ケールで画面が崩れてしまいますので注意してください。

4GL のフルスクリーン・アプリケーションについては、GL_USEGLU を1に設定した状態
で再コンパイルする必要があります。

以下、簡体字中国語でInformixを使用する場合の環境変数設定の例です。この例では、DB_LOCALEにUTF-8ベースのロケールを使ってみました。
export CLIENT_LOCALE=zh_cn.GB18030-2000
export DB_LOCALE=zh_cn.utf8
export DBLANG=zh_cn.gb
export GL_USEGLU=1




タグ :gls

同じカテゴリー(ちょっと細かいテックネタ)の記事
DBACCESS_COLUMNS
DBACCESS_COLUMNS(2020-04-03 00:33)


※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。