Zum Inhalt springen

[Perl] Umlautbehandlung


Empfohlene Beiträge

Moin zusammen,

mal wieder ein Perl Problem....

Ich bekomm eine CSV Datei geliefert, die unter Excel erstellt wurde.

Dummerweise bekomm ich beim einlesen der Datei die Umlaute nicht sauber rüber. Aus ü wird zum Beispiel ³ ...

Wie kann ich das verhindern? Gibt es ne Möglichkeit gleich beim einlesen der Datei einen Umlaut auch als Umlaut zu lesen?


use POSIX;

use locale;

setlocale(LC_CTYPE,

     "de_DE.ISO-8859-1");

hat im übrigen keinen Effekt gehabt ...

Oder muss ich bevor ich mit den Daten arbeite die ³ durch ü ersetzen?

Wenn letzteres wie würde das dann am besten gemacht werden?

Sorry bin relativer Perl Noob ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ah na klar geht ja mit Reg Exp und dem Substitutionsoperator:


$eintrag[0]=~ s/³/ü/gs;

Im Dos Fenster wird mir der Name Günther nun auch richtig angezeigt als Günther. Vorher stand da G³nther ... Aber scheinbar gibt es nun nen Problem mit dem ODBC Treiber... ich poste hier mal die Ausgabe der Ablaufverfolgung:

odbc            5a4-534	ENTER SQLPrepare 

		HSTMT               023526C0

		UCHAR *             0x01A720A0 [      72] "select ID from Mitarbeiter where Name = 'Cordes' AND Vormane = 'G\ffnther'"

		SDWORD                    72

Man sieht, dass aus dem "ü" im Perl String und der Dos Box ein "\ff" wird....

Wieso?

Und wer hat da eine Idee wie sich das ändern lässt?

Denn nun bin ich wirklich ratlos ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Probier mal an Stelle von iso-8859-1 mal windows-1252 oder us-ascii.

Sollen denn die Daten echt auf der Konsole ausgegeben werden? Ich hatte damit bisher nur Ärger (mit C,C++, PHP und Java). Ist eben Windows. Deine Daten sind richtig, nur die Ausgabe sieht etwas komisch aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Ausgabe auf der Konsole war nur als Test gedacht um zu sehen, wie das Statement vor der Übergabe an den ODBC Treiber ausschaut ...

Die anderen Locale variablen probier ich mal durch.

Hoffe das klappt!

Ansonsten jemand ne Idee?

Kann ich vielleicht einfach den Ascii Code für ö,ä,ü an den ODBC Treiber übergeben? Wenn ja wie und welcher Ascii Code steht für welchen Umlaut?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...