Thread [MySQL, Tk] Und nochmal: utf-8-kodierte Daten in Datenbank -> Tk::Text -> Datenbank
(13 answers)
Opened by pktm at 2012-02-23 15:41
Hm, das hat mich jetzt wieder ins Grübeln gebracht.
Hier mal ein kleines Testskript mit Ausgabe: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #!perl use strict; use warnings; use utf8; use DBI; use Devel::Peek; use Encode; my $dbh = DBI->connect('DBI:mysql:database:server;mysql_enable_utf8=1', 'username', 'password'); die DBI::errstr() unless $dbh; my $stmt = qq~SELECT raw FROM files WHERE file_id = ?~; my $sth = $dbh->prepare($stmt); $sth->execute(1); my $row = $sth->fetchrow_hashref(); my $raw = $row->{raw}; Dump $raw; $raw = decode('utf8', $raw); Dump $raw; $raw = encode('utf8', $raw); Dump $raw; exit(0); __END__ SV = PV(0x35b7900) at 0x328d0f0 REFCNT = 1 FLAGS = (PADMY,POK,pPOK) PV = 0x306df38 "\303\244\303\266\303\274\303\237kekse!\303\252"\0 CUR = 16 LEN = 24 SV = PVMG(0x3539908) at 0x328d0f0 REFCNT = 1 FLAGS = (PADMY,POK,pPOK,UTF8) IV = 0 NV = 0 PV = 0x306bbb8 "\303\244\303\266\303\274\303\237kekse!\303\252"\0 [UTF8 "\x{e4}\x{f6}\x{fc}\x{df}kekse!\x{ea}"] CUR = 16 LEN = 24 SV = PVMG(0x3539908) at 0x328d0f0 REFCNT = 1 FLAGS = (PADMY,POK,pPOK) IV = 0 NV = 0 PV = 0x306bb78 "\303\244\303\266\303\274\303\237kekse!\303\252"\0 CUR = 16 LEN = 24 Die in der Datenbank enthaltene Zeichenkette ist äöüßkekse!ê. Stehen die Daten nun utf-8-kodiert in der Datenbank oder nicht? Woran erkenne ich das? http://www.intergastro-service.de (mein erstes CMS :) )
|