アプリケーション実行環境の言語の設定、およびアプリケーションが使用する符号化方式の設定について説明します。
アプリケーション実行環境の言語設定は、データベースサーバのメッセージロケールの設定と合わせる必要があります。
Linux/Solarisの場合
言語の設定は、環境変数LANG、またはソースコード中でsetlocale関数で設定します。
環境変数LANGの設定
言語を指定する環境変数には、LANGのほかに、LC_ALL、LC_MESSAGESがあります。これらの環境変数が複数設定されている場合の優先順位は、(強い)LC_ALL > LC_MESSAGES > LANG(弱い)となります。
例
LANG環境変数で“ja_JP.UTF-8”の指定例(Bash)
> LANG=ja_JP.UTF-8; export LANG
setlocaleの設定
ソースコード中に、setlocale関数を使用してアプリケーションの言語を設定します。
例
setlocale関数で“ja_JP.UTF-8”の指定例
setlocale(LC_ALL,"ja_JP.UTF-8");
参考
setlocale関数の使用方法は、オペレーティングシステムに付属するドキュメントを参照してください。
Windowsの場合
OSのロケールに従います。
アプリケーションに埋め込まれ、データベースに渡される符号化方式と、実行時のクライアント符号化方式の設定は同じにしてください。データベースサーバ側で正しく符号化方式を変換できなくなります。
アプリケーションの符号化方式は、以下のいずれかの方法で設定してください。
実行時の環境変数PGCLIENTENCODINGに設定する。
接続文字列のclient_encodingキーワードに設定する。
PQsetClientEncoding関数を使って設定する。
参照
設定できる符号化方式を表す文字列は、“PostgreSQL文書”の“サーバの管理”の“サポートされる文字セット”を参照してください。
例えば、Unicode、8ビットの場合は、“UTF8”という文字列を設定します。
例
環境変数“PGCLIENTENCODING”に設定する場合
クライアントの符号化方式が“UTF8”の場合の設定例(Bash)
> PGCLIENTENCODING=UTF8; export PGCLIENTENCODING
クライアントの符号化方式が“UTF8”の場合の設定例
> set PGCLIENTENCODING=UTF8
注意
コマンドプロンプトに結果を出力する際、文字化けする場合があります。文字化けした場合は、コマンドプロンプトのフォントの設定を見直してください。