• 締切済み

文字セットの変換

perlCGIでperlDBIからPostgreSQLに接続してデータを文字セットをUTF-8に変換して表示するプログラムを作成していますが、この度、新サーバに移設したところ文字変換がうまくいかないようです。 これまでは、文字セット変換は、 $ENV{'PGCLIENTENCODING'} = 'UTF-8'; でうまく作動しておりましたが、新サーバではだめなようです。 そのため $dbh = DBI->connect("DBI:Pg:dbname=$dbname", "$dbusr", "$dbpas") || die &error(not_connect); $sth = $dbh->prepare( "SET client_encoding TO 'UTF-8' ") || die &error(not_prepare); $sth->execute() || die &error(not_execute); $sth->finish || die &error(not_finish); で変換を試してみましたがこれもだめでした。 なにが原因なのか分かりません。 ご回答をよろしくお願いします。 新サーバの環境は、 OS:Debian sarge PostgreSQL7.4.7 DBI 1-46 DBD 1-41 perl 5.8 です。

みんなの回答

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

UTF-8ではなくUNICODEでどうですか? あと、結果を得るわけではないので、prepare→execute→finishではなくdoでもいいでしょう。 $dbh->do("SET NAMES 'UNICODE'");

関連するQ&A