Thread Apache error log erweitern (55 answers)
Opened by ALE1981 at 2019-09-20 11:41

haj
 2019-09-23 11:32
#190515 #190515
User since
2015-01-07
527 Artikel
BenutzerIn

user image
2019-09-23T08:59:30 pq
Sagen wir, hier ist der auszugebende Text: my $text = chr(0xC9);
Er liegt in einer perl-internen Kodierung vor.

Zu diesem Zeitpunkt weiß Perl gar nicht, dass Du Text meinst: $text hat den Wert 0xC9, das kann durchaus binär gemeint sein. Wenn es als String verwendet wird, dann wendet Perl sein 1-Byte-decoding an und interpretiert es als É.

2019-09-23T08:59:30 pq
Nun möchte ich den Text als UTF-8 kodiert ausgeben.
Was ist richtig?

use bytes; print $text;

oder

print Encode::encode_utf8($text);

Nur die zweite Form ist richtig. In der ersten Form bekommst Du das 0xC9 in den Output-Stream, das ist ein É in ISO-8859-1, aber nicht gültig in UTF-8.

View full thread Apache error log erweitern