Veröffentlicht 4. August 200421 j 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 ...
4. August 200421 j Autor 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 ...
4. August 200421 j 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.
4. August 200421 j Autor 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?
31. August 200420 j Autor Windows-1252 als Locale Variable hats gebracht! Hat bisserl gedauert (hatte BS zwischendurch) aber nu läufts! *freu* Vielen Dank nochmal
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.