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

rosti
 2019-10-04 09:29
#190615 #190615
User since
2011-03-19
3235 Artikel
BenutzerIn
[Homepage]
user image
Code (perl): (dl )
1
2
$text = chr(0xC9);
print Encode::encode_utf8($text);


Ganz korrekt ist das aber auch nicht. chr() liefert, da 0xC9 > 128, nur das Byte, also kein Zeichen mit einer bestimmten Kodierung. encode_utf8() jedoch möchte keine Bytes als Argument sondern utf8kodierte Zeichen um damit die Bytes (Oktetten) zu erzeugen.


MFG

PS: Wenn das mit chr(0xC9) erzeugte Byte ein Zeichen mit einer bestimmten Kodierung wäre, würden Stringfunktionen wie uc() und lc() funktionieren. Tatsächlich ist das nicht der Fall.

Edit, richtig wäre:

Code (perl): (dl )
1
2
3
4
use Encode qw(:all);
my $c = chr 0xC9;               # 1 Byte haben wir
from_to($c ,'Latin1', 'utf-8'); # ergibt nun 2 Bytes
print $c;                       # diese 2 Bytes ausgeben

Last edited: 2019-10-04 20:50:38 +0200 (CEST)

View full thread Apache error log erweitern