Thread HTML::Entities - decode_entities() erzeugt kein Unicode sondern Latin1 (40 answers)
Opened by GwenDragon at 2024-03-19 12:49

haj
 2024-03-21 13:42
#195957 #195957
User since
2015-01-07
555 Artikel
BenutzerIn

user image
2024-03-21T12:19:44 rosti
Mein Tipp: Bleibe bei der Bytesemantic.Dann muß lediglich die Kodierung im Suchausdruck dieselbe sein wie die im zu durchsuchenden Text.

Das ist Unsinn. GwenDragon hat geschrieben, dass auch reguläre Ausdrücke möglich sind, und dann nützt das gleiche Encoding gar nichts. Ein /^.$/ matcht in Charakter-Semantik ein einzelnes , in Byte-Semantik nicht, weil das €-Zeichen als drei Bytes daherkommt.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
use 5.032;
my $e = "\N{EURO SIGN}";

my $term  = '^.$';
my $term3 = '^...$';
say "Characters mit '$term': " , $e =~ /$term/;  # 1
say "Characters mit '$term3': ", $e =~ /$term3/; # kein Match

{
    use bytes;
    say "Bytes mit '$term': ",  $e =~ /$term/;   # kein Match
    say "Bytes mit '$term3': ", $e =~ /$term3/;  # 1
}

View full thread HTML::Entities - decode_entities() erzeugt kein Unicode sondern Latin1