Hallo!Ich schreibe momentan eine mittelgroße Anwendung mit (Tk)-GUI und komplett unter dem utf8-Pragma. Bisher hatte ich damit keine Probleme, Tk hat sämtliche Umlaute etc. korrekt angezeigt.
Da das Programm jedoch als allein lauffähige exe an den Empfänger geht, welche ich mit "perl2exe -gui" erstellen werde, hab ich die Tk::Error wie in der Doku erklärt überschrieben, um Fehlermeldungen in einer schnieken Dialogbox auszugeben. Und da kam dann das böse Erwachen. Irgendwie hat es die Fehlermeldung geschafft, zwischen dem 'die'-Befehl und der Ausgabe in einer "$mw->Dialog"-Box insgsamt 3 (in Worten: "drei") mal zusätzlich durch eine utf8-Kodierung zu laufen.
Ich konnte das zwar erstmal mit einem dreifachen [code lang=perl]utf8::decode($error)[/code] umgehen, dennoch würde mich interressieren, wie es überhaupt dazu kommen kann.
Beispielskript zum flotten ausprobieren:
#!/usr/bin/perl
use strict;
use utf8;
use Tk;
my $mw = new MainWindow;
$mw->Button(-text => 'click!', -command => sub { die "äöü\n" })->pack;
MainLoop;
sub Tk::Error {
my ($widget, $error) = @_;
$widget->Dialog(
-title => 'Fehler',
-text => $error,
-bitmap => 'error',
-default_button => 'ok',
-buttons => ['ok'],
-wraplength => '4i'
)->Show;
exit
}
Grüße, Skrilax
Datum: 23.06.2007-00:05
