Thread Umlautproblematik (26 answers)
Opened by Andy at 2013-10-18 14:53

Gast Andy
 2013-10-21 16:15
#171367 #171367
Hallo in die Runde und danke noch mal für all die Infos. Hatte über das Wochenende damit ja einiges zum Lesen :)

Und ich habe jetzt noch etwas ausprobiert, was mich aber noch verrückter werden lässt.

1.) Ich öffne die Textdatei mit Perl und schreibe die Werte in eine Datenbanktabelle auf dem MS SQL-Server. Umlaute sehen nach dem Speichern in der Datenbank beim Ansehen der Tabelle mit dem "SQL-Server-Management-Studio" ganz normal aus, so wie ich es haben möchte.
Lasse ich mir das entsprechende Sql-Statement, welches die Daten in die Datenbanktabelle schreibt, auf der Konsole ausgeben, sehe ich die Umlaute da aber "zerstört".

2.) Greife ich nun mit einem weiteren Perl-Programm lesend auf die Tabelle zu und lasse mir die ausgelesenen Daten in die Konsole ausgeben, sind hier die Umlaute "zerstört".

Schreibe ich die Werte jetzt in eine weitere Tabelle, auf dem selben Server/ selbe Datenbank wie die erste Tabelle, werden die Umlaute da jetzt aber "zerstört" abgespeichert.

Warum beim Speichern in der ersten Tabelle dies nicht passiert, sondern die Umlaute korrekt abgespeichert werden, erschließt sich mir nicht.

Alle Datenbankzugriffe erfolgen per Win32::ODBC.

Kann ich evtl. beim Datenbank-Connect einen Zeichensatz mit angeben? Oder kann ich dem Perl-Programm sagen, dass es alle Daten in einem bestimmten Zeichensatz zu verarbeiten hat?

Ich habe jetzt selbst auch noch mal nachgeforscht, welcher Zeichensatz auf dem Server eingestellt ist. Microsoft gibt da "iso_1" an, was gleichbedeutend mit "8859-1" sein soll.

Einen Unterschied beim Schreiben der Daten gibt es. Bei 1.) erfolgt das Einfügen der Daten in die Tabelle per INSERT-Befehl, bei 2.) dann per Stored Procedure (die aber am Ende auch ein INSERT macht). Vielleicht ist ja wirklich das das Problem, was ich dann aber auch nicht nachvollziehen könnte. Was dann aber letztlich nicht hier ins Perl-Board gehört.

Auch wenn die Ausgabe auf der Konsole die selbe ist, habe ich dann noch einen Unterschied festgestellt. Notepad++ zeigt mir für das Perl-Programm von 1.) an, dass das Programm selbst in der Kodierung "ANSI als UTF-8" vorliegt. Für das Programm aus 2.) dann aber in Kodierung "ANSI".

Doch in welcher Kodierung auch immer das Programm selbst abgespeichert ist, dies dürfte doch keinen Einfluss auf die Verarbeitung der Daten haben, oder?


Vielen Dank,
Andy
Last edited: 2013-10-21 16:17:54 +0200 (CEST)

View full thread Umlautproblematik