(Hallo|Hi(ho)|und Gute Nacht) Matze,
Ich möchte einen Multibyte String in ein Array zerlegen.
Zunächst fand ich str_split() perfekt bis ich einen String mit Umlauten probiert habe.
Ich habe dann versucht das Problem zu lösen indem ich die interne Kodierung mitmb_internal_encoding("UTF-8")auf UTF-8 stelle aber davon lies sich str_split() nicht beeindrucken.
Gut, du möchtest also nicht mit einer beliebigen Multibyte-Kodierung, sondern nur mit UTF-8 arbeiten.
Die Verwendung von preg_split() brachte mir dasselbe Ergebnis.
Weil du preg_split() falsch angewandt hast ...
Gibt es eine Funktion mit der ich Strings mit Multibyte-Zeichen korrekt in ein Array zerlegen kann?
Für UTF-8 eignet sich preg_split() ganz gut:
$chars = preg_split('//u', $utf8encoded);
Man beachte das kleine "u" (für UTF-8-encoded)
und die Tatsache, dass zwischen den "Delimitern" nichts steht ("trenne zwischen den Zeichen").
Das ist der ganze Trick.
MffG(ähnen)
EisFuX