Thread Encoding, Umlaute, ...
(19 answers)
Opened by roli at 2015-07-10 14:04 2015-07-13T10:58:21 bianca Diese Codepages sind nun mal die Standardeinstellungen für das Encoding der Dos-Box an den Windows Rechnern mit denen ich zu tun habe. Was ich damit will, ganz einfach, ich möchte es den Nutzern der Scripte so einfach wie möglich machen. Wenn man jedem erklären muss, wie man "Windows Perl komatibel macht" indem man die Codepage wechselt, den Konsolenfont umstellt, ..., steigert das nicht wirklich die Akzeptenz. 2015-07-13T10:58:21 biancaSind dir die zweite und dritte Zeile nicht aufgefallen? Da gab es noch: Quotegratis obendrauf, um es mal so zu sagen. 2015-07-13T10:58:21 bianca Keine Ahnung, die Information ist doch auch so zugänglich. 2015-07-13T10:58:21 bianca Ich möchte ein Script haben, das auf einem Windows System läuft, nach Möglichkeit nichts vorher an den Systemeinstellungen verändert, und mir dann in der Dos-Box sowie in einer Datei "äöüßÄÖÜ€" ausgibt. Ich habe dein Script jetzt nochmal etwas angepasst, und bin beinahe so weit: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/usr/bin/perl use Modern::Perl '2015'; use Encode qw(decode encode); my $encoding = $^O eq 'MSWin32' ? 'cp1252' : 'utf8'; binmode(STDOUT, ":encoding($encoding)" ); binmode(STDERR, ":encoding($encoding)" ); binmode(STDIN, ":encoding($encoding)" ); my $testtext = 'öäüÖÄÜ߀'; my $data2 = decode "$encoding", $testtext; open my $fh, '>', "test.txt" or die $!; say $fh $data2; close($fh); say "\nData2: > $data2 <\n"; Die Datei ist ok, der Output in der Dosbox auch weitestgehend, nur das "Wide character in say at y.pl line 13." stört noch. In der Dos-Box wird Kodepage 1252 verwendet, das Script ist laut Notepad++ als ANSI kodiert. Danke Roland
-- "Steh vorn, während du fragst; sitzen soll, wer antwortet." Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2 |