Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Splitten eines Unicocde/UTF8-Strings in Buchstaben

4 views
Skip to first unread message

Ralf Ertzinger

unread,
Apr 25, 2009, 8:18:10 AM4/25/09
to
Moin.

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.

Wolf Behrenhoff

unread,
Apr 25, 2009, 10:36:23 AM4/25/09
to
Ralf Ertzinger schrieb:

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

Ralf Ertzinger

unread,
Apr 25, 2009, 10:53:13 AM4/25/09
to
On Sat, 25 Apr 2009 16:36:23 +0200, Wolf Behrenhoff wrote:


> 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!

0 new messages