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

barney
 2023-11-14 11:27
#195525 #195525
User since
2008-08-31
133 Artikel
BenutzerIn
[Homepage] [default_avatar]
2023-11-14T09:30:48 rosti
Konsole ist IO, print schreibt auf STDOUT per default. Und STDOUT kennt keine Kodierung sondern erwartet Bytes.

Code (perl): (dl )
1
2
use Encode::Locale;
binmode(STDOUT, ":encoding(console_out)");


führt bestenfalls zu einer Fehlermeldung sofern die perlinterne Kodierung mit der Konsolekonfiguration nicht übereinstimmt. Auf die Kodierung selbst hat dieses Konstrukt keinen Einfluß.


Das stimmt doch nicht. Intern liegt das ä von Cäsar entweder in latin1 kodiert als E4 oder in utf-8 kodiert als C3 A4 vor. Ich nehme mal an dass ":encoding(console_out)" ein Alias für "utf-8" ist. Mit den obigen Anweisung weiß Perl dass es in beiden Fällen ein C3 A4 raus schicken muss wenn das ä auf STDOUT ausgegeben werden soll. Das ist doch normale IO-Layer Funktionalität und führt zu keinen Fehler.

View full thread Systematische Fehler