[pgsql-jp: 26801] Re: Win Pgaccess で文字化けてます

rio-t @ presen.to rio-t @ presen.to
2002年 7月 23日 (火) 00:46:11 JST


こんにちは、高石です。

From: Amuro Ray <gundam @ fa2.so-net.ne.jp>
Subject: [pgsql-jp: 26799] Re: Win Pgaccess で文字化けてます

> 高石さんと永安さんのスレッドから
> PGCLIENTENCODING
> を設定してもだめということはよくわかりました。
> libpgtcl.dll!?に落とし穴があるのですね。

だめではありません。
Tcl/Tkのバージョンが8.1以降だと、内部コードがUnicodeになって
いるため、client_encodingも強制的にUnicodeになるというだけで
す。
TclTk8.0を使っているなら、PGCLIENTENCODINGを設定しておけば、
ちゃんと効果があります。

> > (1) PgAccessのフォント設定をMSゴシックに変更。
> > (2) 既存のEUC_JPなDBを見て日本語が化けることを確認。
> > (3) pgaccess実行ファイルのexecの前に次の二行を追加。
> > 
> > PGCLIENTENCODING=SJIS
> > export PGCLIENTENCODING
> > 
> > (4) (2)のDBを見て日本語が化けずに表示されることを確認。
> > (5) PgAccess上で日本語の文章を入力してInsert。
> > (6) (5)でインサートした日本語を、普段使っているpsqlで
> >     selectして表示。正しく入力できていることを確認。
> 
> ですが、(3)が実行できず、わかりません。
> Windows用Pgaccess(Tcl/tk Interface)なのですが、pgaccess
> 実行ファイルとはmain.tclのことでしょうか?

失礼しました。
直接 main.tcl を実行していたのですね。
Windows環境ならそれが普通ですよね。
ついCygwin環境を前提に書いてしまいました。
であれば、pgaccess.bat を作って、

SET PGCLIENTENCODING=SJIS
"c:\Program Files\tcl\bin\wish80jp" c:/usr/local/pgaccess/main.tcl %*

こんな感じでいけると思います。
ファイルのパスは適宜読みかえて下さい。

もしくは、単純にシステムの環境変数にPGCLIENTENCODINGを設定し
ておくだけでもいいはずです。
# 設定後、Windowsを再起動した方がいいかもしれません。

> 高石さんはCygwin(今回はじめて知りました。)をお使いだとい
> うことですが、UNIX系pgaccessをWindowsで使用したというこ
> とでしょうか?
> それとも、Windows系pgaccessなのでしょうか?

PgAccessのオフィシャルサイト(http://www.flex.ro/pgaccess/)か
ら、Windows用のZIPアーカイブをダウンロードしました。
多分同じものですよね。
というわけで、使ったのはWindows用のPgAccessだったのですが、
main.tclを直接実行せずに、Cygwinのbashシェルから、main.tclと
同じディレクトリにある "pgaccess" の方を実行していました。

# 私の場合、普段からこういう使い方が普通だったもので(^^;
/--------------------------------------------------------/
  高石 勇人 < rio-t @ presen.to >
  PGP Key(RSA): http://rio-t.presen.to/pgp/mykey.asc
         (DSS): http://rio-t.presen.to/pgp/mykey-dss.asc
/--------------------------------------------------------/



pgsql-jp メーリングリストの案内