Thread unicode combined characters nach iso aber wie ? (5 answers)
Opened by perlot at 2012-02-23 16:13

moritz
 2012-02-26 08:09
#156443 #156443
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
2012-02-25T20:28:12 perlot
Frage noch an Moritz, Du benutzt folgenden Code.
Code (perl): (dl )
1
2
3
4
5
6
7
8
...
s{([^\0-\177])}{N_escape($1)}eg;
...
sub N_escape {
    my $n = charnames::viacode(ord($_[0]));
    return defined($n) ? "\\N{$n}" : sprintf('\x{%x}', ord($_[0]));
}
...


Wie schafft es der Ersetzungsstring, dass 3 Bytes zu einem Charname aufgelöst werden können, obwohl N_escape() nur zeichenweise abarbeitet.
Magie?


Die "Magie" ist das decode_utf8, das die drei Bytes in einen einzigen Codepoint umwlandelt. Siehe z.B. http://perlgeek.de/en/article/encodings-and-unicod... für eine ausführlichere Beschreibung.

View full thread unicode combined characters nach iso aber wie ?