Der beste Weg, um Korrektheit zu erreichen, scheint darin zu bestehen, Programmierer davon abzuhalten, "String-Hacking" durchzuführen. Es ist einfach nicht in Ordnung, eigene Routinen für Zeilenumbruch, Silbentrennung, Wortanzahl, Rechtfertigung, Cursorbewegung usw. zu schreiben. Alle modernen UI-Frameworks werden diese Dinge heutzutage für Sie erledigen.
Das heißt, die Abstraktion, mit der Sie normalerweise arbeiten würden, ist eher ein "Absatzanzeigeobjekt", z. B. für GTK:
http://library.gnome.org/devel/pango/stable/pango-Layout-Objects.html
anstelle einer Graphemzeichenfolge wie:
http://library.gnome.org/devel/pango/stable/pango-Glyph-Storage.html
Um zu einer Zeichenfolge von Glyphen zu gelangen, benötigen Sie Informationen, die nur auf der Ebene "Ansicht" verfügbar sind. Daher verfügen die meisten Verwendungen von Zeichenfolgen möglicherweise nicht über diese Informationen. Zum Beispiel müssen Sie die Schriftart kennen, da Schriftarten unterschiedliche Ligaturen haben können.
Abgesehen von dieser Art von praktischer Angelegenheit sind Glyphen wahrscheinlich nicht das, was Sie wollen.
In vielen Kontexten möchten Sie die richtigen Unicode-Attribute verwenden, die in dieser API angezeigt werden, beispielsweise:
http://library.gnome.org/devel/pango/stable/pango-Text-Processing.html#PangoLogAttr
Wie Sie an dieser Struktur sehen können (die die Unicode-Algorithmen widerspiegelt), ist es nicht korrekter, verschiedene Dinge an Glyphengrenzen auszuführen, als sie an Zeichengrenzen auszuführen.
Diese beiden Spezifikationen beschreiben die Algorithmen zum Auffinden verschiedener Arten von Grenzen:
Bei der Textverarbeitung müssen diese Grenzen mit den Algorithmen ermittelt und anschließend mit den Grenzen gearbeitet werden.
Wenn Sie sich damit befassen, wie schwierig es ist, alle Sprachen richtig zu handhaben, werden Sie sehr schnell feststellen, dass Sie eine Bibliothek benötigen, die ganze Absätze betrachtet und richtig behandelt. Windows, Mac, Linux (Qt und GTK) und Java verfügen alle über entsprechende Funktionen. Außerdem gibt es beispielsweise http://site.icu-project.org/ .
Wenn Sie Web-Apps schreiben, müssen Sie leider, soweit ich weiß, den Browser (wahrscheinlich vom Betriebssystem unterstützt) so ziemlich alles tun lassen. Alles, was Sie in JavaScript oder auf der Serverseite tun können, ist es durcheinander zu bringen.
Vielleicht würde ich die Antwort wie folgt zusammenfassen: Die meisten Manipulationen an Zeichenfolgen in Text in natürlicher Sprache sind fehlerhaft, daher macht es keinen Sinn, sich Gedanken über die Zeichenfolgenklasse zu machen, außer vielleicht eine ohne Methoden zu haben ;-)