Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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 ...

  • 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 ...

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.

  • 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?

  • 4 Wochen später...

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.