Thread Systematische Fehler (42 answers)
Opened by rosti at 2023-11-12 10:22

barney
 2023-11-12 16:24
#195493 #195493
User since
2008-08-31
133 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das Problem ist hier dass Perl nicht weiß in welchen encoding der String "Cäsar" herausgeschrieben werden soll. Der Default ist, dass das interne Encoding genommen wird. Das ist aber unbefriedigend weil das interne Encoding davon abhängt ob der String in latin1 darstellbar ist oder nicht.

Die optimale Lösung für dieses Problem kenne ich nicht. In den Console-Programmen von OTOBO wird Encode::Locale benutzt.

Code: (dl )
1
2
3
4
5
6
7
8
9
$ cat encode_locale.pl 
use utf8;
use Encode::Locale;

binmode STDOUT, ':encoding(console_out)';
print "Cäsar\n";

$ perl encode_locale.pl
Cäsar


Das ist für den Fall dass das Skript interaktiv aufgerufen wird. Wenn es von einem anderen Skript aufgerufen wird, dann wird die Ausgabe in UTF-8 kodiert.

View full thread Systematische Fehler