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

pktm
 2012-02-23 19:04
#156381 #156381
User since
2003-08-07
2921 articles
BenutzerIn
[Homepage]
user image
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 :) )

View full thread [MySQL, Tk] Und nochmal: utf-8-kodierte Daten in Datenbank -> Tk::Text -> Datenbank