Moin!
ich habe hier ein merkwürdiges Problem. Angenommen ich habe folgenden String:
$text = "„Übersicht”";
Wenn ich diesen String ausgebe, erhalte ich „Übersicht”, also alles in bester Ordnung. Möchte ich aber nur ein bestimmtes Zeichen ausgeben und ist dieses zufällig ein Sonderzeichen, wie z.B. so:
echo $text[0];
Damit gibst du das erste Byte aus. UTF-8-Zeichen bestehen aber aus einem bis vier Bytes. Du müßtest also eine Erkennungsroutine schreiben, die prüft, ob das auszugebende Byte Bestandteil eines Mehrbyte-Zeichens ist (das ist recht einfach, weil solche Bytes in UTF-8 das Bit 7 gesetzt haben), und dann alle zugehörigen Bytes links und rechts davon ebenfalls mit ausgeben.
Alternativ benutzt du einfach mb_substr(), die Multibyte-Variante von substr(). Das dürfte deutlich einfacher sein.
- Sven Rautenberg
"Love your nation - respect the others."