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

barney
 2023-11-13 21:28
#195515 #195515
User since
2008-08-31
133 Artikel
BenutzerIn
[Homepage] [default_avatar]
Sorry, deine Ausführungen verwirren mich mehr als sie mich erleuchten.

Quote
binmode STDOUT, ':encoding(console_out)'; sorgt dafür daß die interne Kodierung für die Ausgabe auf STDOUT abgeschaltet wird. Aber nur dann wenn die interne Kodierung mit der von der Konsole benutzten Kodierung übereinstimmt.


Ich weiß nicht was "interne Kodierung abschalten" bedeuten soll. Bei ':encoding(console_out)' wird doch nur das Terminal gefragt welches Encoding das Terminal erwartet. Das ist dann so etwas wie 'ascii', 'latin1' oder 'utf8'. Wenn ein String auf STDOUT herausgeschrieben wird, dann wird dieser entsprechend kodiert. Ob das möglich ist oder nicht hängt vom String und vom gewünschten Encoding ab. Der Unicode Codepoint € kann nicht als latin1 kodiert werden, also kommt der "Wide character in print" Fehler. Die Bytefolge E2 82 AC können problemlos als latin1 herausgeschrieben werden, weil in diesem Fall einfach die drei Bytes herausgeschrieben werden.

Quote
Welche Zeichenkodierung jedoch in der Scriptdatei vorliegt ist allein durch die aus der Datei gelesenen Bytes gegeben. D.h., welche Kodierung beim Speichern der Datei angegeben wurde. Ein use utf8; hat auf Letzteres gar keinen Einfluß.


Ja natürlich. Ein use utf8; hat keinen Einfluss welche Bytes sich im Rest der Datei befinden. Das ist wahr, aber warum das erwähnenswert ist kapiere ich nicht.

View full thread Systematische Fehler