當我運行這個腳本(或類似的腳本與DBD :: SQLite或DBD :: MySQL),它看起來像返回的錯誤消息不解碼。
是否通常輸出到STDERR未解碼?是否通常輸出到STDERR未解碼?
#!/usr/bin/env perl
use warnings;
use strict;
use utf8;
use open qw(:encoding(UTF-8) :std);
use DBI;
my $dbh = DBI->connect("DBI:Pg:dbname=my_test_db", 'username', 'password', {
PrintError => 0,
RaiseError => 1,
AutoCommit => 1,
pg_enable_utf8 => 1,
}) or die DBI->errstr;
my $sth = $dbh->prepare("S☺LECT * FROM abteilung");
$sth->execute();
輸出:
#DBD::Pg::st execute failed: FEHLER: Syntaxfehler bei »SâºLECT«
#ZEILE 1: SâºLECT * FROM abteilung
# ^at ./perl2.pl line 16.
你確定你的輸出控制檯支持該編碼嗎? STDIN輸出是否正確? – m0skit0
STDIN輸出正確。 –