重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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
です。

A 回答 (1件)

UTF-8ではなくUNICODEでどうですか?


あと、結果を得るわけではないので、prepare→execute→finishではなくdoでもいいでしょう。

$dbh->do("SET NAMES 'UNICODE'");
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す