Siechfred: Sonderzeichen, STDIN unter Windows

Beitrag lesen

Ich benutze als Editor UltraEdit und das DOS Command Window.

Okay, dann mach mal folgendes:

print "Eingabe: ";  
my $str = <STDIN>;  
print "Codiert: ", sprintf("%02X", ord $str);

Das ergibt bei mir bei Eingabe von 'é' den Wert 82, für 'è' den Wert 8A. Das Ganze angewendet:

$str =~ tr/\x82\x8A/e/;

funktioniert hier mit ActiveState Perl 5.8.8 unter Windows XP Home bestens.

Zur Erklärung: Was wie codiert ist, hängt von der eingestellten Codepage ab, bei mir ist es CP850. Gib mal in der Kommandozeile "mode con /status" ein, dann wird Dir die Codepage ausgegeben, danach richtet sich, welche Hexwerte Deine Sonderzeichen haben müssen.

Siechfred

--
Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.