EisFuX: UTF-8 und preg_split()

Beitrag lesen

(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 mit mb_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