Thread Automatisches decodieren von utf-8 aus mysql Datenbank (39 answers)
Opened by mcfaq at 2011-08-01 17:55

kristian
 2011-08-03 10:51
#151013 #151013
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

als "vierter DNS-Parameter" ist die Wirkung anders, es beeinflusst die Datenübertragung zwischen MySQL- Client und Server:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my $dsn = 'DBI:mysql:' . join( ";", 'database=' . $data->{'database'}, 'host=' . $data->{'server'}, 'port=' . $data->{'port'}, 'mysql_enable_utf8=1' );
my $dbh = DBI->connect(
$dsn,
$data->{'user'},
$data->{'password'},
{
RaiseError => 0,
PrintError => 1,
AutoCommit => 0,
mysql_enable_utf8 => 0
}
) or die( DBI->errstr() );

Code: (dl )
1
2
3
4
5
6
SV = PV(0x8812588) at 0x880f7f0
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0x8809580 "Bakker - Sch\303\266ne G\303\244rten!"\0
CUR = 25
LEN = 28


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my $dsn = 'DBI:mysql:' . join( ";", 'database=' . $data->{'database'}, 'host=' . $data->{'server'}, 'port=' . $data->{'port'} );
my $dbh = DBI->connect(
$dsn,
$data->{'user'},
$data->{'password'},
{
RaiseError => 0,
PrintError => 1,
AutoCommit => 0,
mysql_enable_utf8 => 0
}
) or die( DBI->errstr() );

Code: (dl )
1
2
3
4
5
6
SV = PV(0xa43e3f0) at 0xa43b650
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0xa4353f0 "Bakker - Sch\366ne G\344rten!"\0
CUR = 23
LEN = 24


Wenn man(in) { mysql_enable_utf8 => 1 } an DBI übergibt wird sowohl die Communication auf UTF-8 gesetzt als auch der Content in das Perl-interne Format gebracht.

Ich habe den Wunsch des OP wohl falsch verstanden oder der hat sich im Laufe der Diskussion geändert, ich hätte geschworen, da steht sowas wie "aus der Datenbank direkt ausgeben ohne decode / encode".

Gruß
Kristian

View full thread Automatisches decodieren von utf-8 aus mysql Datenbank