Vielleicht stelle ich mich nur bloed an, aber:
Ich habe einen scalar, der einen Bitstrom enthaelt, der
eine gueltige, in UTF8 encodete Folge von Unicode-Codepoints
enthaelt (ich bitte, die verquartzte Ausdrucksweise zu
entschuldigen).
Ich moechte diesen scalar jetzt in ein array splitten, so
dass jedes array-element genau den bitstrom enthaelt, der
einem in UTF8 encodeten Unicode-Codepoint entspricht.
$a = "äoü";
@a = .... # Magic happens here
# @a = ("ä", "o", "ü");
split(//, $a) zerlegt mir den scalar in bytes, ob
mit -Mutf8 oder ohne, mit utf8::upgrade oder ohne.
Wie stelle ich das an?
PS: Ziel-Version, auf der das funktionieren soll, ist
perl-5.8.8.
Du musst Perl mitteilen, dass dieser String in utf8 vorliegt. Dazu musst
du ihn dann in Perls internes Format umwandeln. Das geschieht mit der
Funktion decode aus dem Modul Encode.
Also:
use Data::Dumper;
use Encode;
$_ = decode('utf8', $hier_dein_text);
Dann splittest du den String und wandelst ihn zurück, so du das denn
wirklich da schon willst.
@a = map { encode('utf8', $_) } split //;
print Dumper \@a;
- Wolf
> Du musst Perl mitteilen, dass dieser String in utf8 vorliegt. Dazu musst
> du ihn dann in Perls internes Format umwandeln. Das geschieht mit der
> Funktion decode aus dem Modul Encode.
Das tut, danke!