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

rosti
 2012-02-23 21:01
#156399 #156399
User since
2011-03-19
3463 articles
BenutzerIn
[Homepage]
user image
Entscheidend ist das hier:

Code (perl): (dl )
open my $fh, "<:encoding(utf8)", $file or die "$file: $!";


Wenn utf8-oktetten in der Datei sind, kriegst Du beim Lesen aus $fh utf8-kodierte Zeichenketten. Der Layer ':encoding(utf8)' vermittelt das.

Wenn solche tagged Strings (SvUTF8) über DBI nach MySQL gehen, funktioniert das zeichenorientiert entweder mit

Code (perl): (dl )
$DBH->do("SET NAMES UTF8");


oder "SET CHARACTER SET utf8"

oder {mysql_enable_utf8 => 1}

Ansonsten werden die nackten Oktetten in die Tabelle geschrieben und kommen auch so zurück.

Sofern einer der o.g. 3 Varianten angewandt wird, kannst Du jedoch auch anstelle eines SvUTF8 (Scalar-Value UTF8) die Oktetten über DBI schicken, weil für die Verbindung mithin utf-8-kodierung ausgehandelt wurde.

set names u.a. http://dev.mysql.com/doc/refman/5.1/de/charset-con...
Last edited: 2012-02-23 21:02:51 +0100 (CET)

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