Hallo,
bei mir herrschen offenbar einige Unklarheiten im Umgang mit Perl und den verschiedenen Zeichencodierungen.
Und zwar folgendes: Ich möchte von einem Klienten auf den Server zugreifen. Dazu habe ich eine .NET-Anwendung (Windows-Forms, 2003, ist aber nicht so wichtig), welche einen String mittels System.Text.UTF8Encoding in eine Bytefolge umwandelt. Diese Bytefolge wird an einen Request gepostet und dieser an den Server geschickt. Soweit so gut.
Das Perl-Skript empfängt diese Bytefolge mittels:
read(STDIN, $In, $ENV{'CONTENT\_LENGTH'}) || die "Could not process posted information";
$In wird gesplittet und die Teilstrings in eine mySQL-Datenbank geschrieben. Bei den Feldern der Datenbank ist „Kollation“ auf „utf8_general_ci“ gesetzt.
Das Problem: Aus dem ursprünglichen string „René“ wird „René“ und mit anderen Sonderzeichen passiert ähnliches.
Der String scheint allerdings in Perl richtig anzukommen, denn schreibe ich ihn in mit STDOUT in eine Text-Datei, dann stimmt er. Oder ist die Kodierung der Datenbank falsch?
Danke im Voraus für jeden Hinweis!
Alex