2009-04-06T06:55:51
VermillionDa meine Konsole anscheinend die Zeichenkodierung nicht akzeptiert muss ich wohl auf die längere Antwort zurückgreifen =)
weil notepad und wordpad meines wissens Dateien immer in utf8 speichern sollte ich die Dateien wohl Problemlos hiermit auslesen können:
open my $handle, '<:encoding(UTF-8)', $datei;
Soweit richtig. (Notepad kann inzwischen in verschiedenen Kodierungen speichern, auch wenn sie eine fälschlicherweise als "Unicode" bezeichenen)
QuoteWenn ich das richtig verstanden habe müsste ich dann bevor ich wieder mit den Strings arbeite (z.B. splitten) alles wieder dekodieren.
my $text_str = decode(utf-8, $handle);
Nein, das :encoding(UTF-8) beim öffnen sorgt schon für das dekodieren; das nochmal manuell zu machen wäre falsch.
QuoteAnschliessend müsste ich die Benutzereingabe als utf8 kodieren. Und dann anschliessend gleich wieder dekodieren damit ich Sie mit den ausgelesenen Strings vergleichen kann. würde das so gehen? Oder habe ich etwas falsch verstanden?
Du setzt einfach
binmode STDIN, ':encoding(UTF-8)';
binmode STDOUT, ':encoding(UTF-8)';
dann wird alles encoding/decoding für dich automatisch gemacht.
Wieder unter der Voraussetzung, dass deine Konsole UTF-8 versteht. Wenn nicht, musst du diee Zeichenkodierung wählen, auf die deine Konsole eingestellt ist (Unter Windows vermutlich cp-858 oder cp-850).