Thread Perl und Unicode (5 answers)
Opened by Vermillion at 2009-04-06 07:32

moritz
 2009-04-06 14:08
#120315 #120315
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
2009-04-06T06:55:51 Vermillion
Da 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:
Code (perl): (dl )
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)

Quote
Wenn ich das richtig verstanden habe müsste ich dann bevor ich wieder mit den Strings arbeite (z.B. splitten) alles wieder dekodieren.
Code (perl): (dl )
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.

Quote
Anschliessend 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

Code: (dl )
1
2
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).

View full thread Perl und Unicode