UTF-8-Zeichenfolge verarbeiten

Wie ich weiß, verwendet Linux die UTF-8-Codierung. Das heißt, ich kann verwendenstd::string für die Handhabung der Zeichenfolge richtig? Nur die Codierung ist UTF-8.

Bei UTF-8 wissen wir, dass einige Zeichen 1 Byte, einige 2,3 .. Byte sind. Meine Frage ist: Wie gehen Sie mit UTF-8-codierten Zeichenfolgen unter Linux mit C ++ um?

Insbesondere: Wie würden Sie die Länge des Strings in Bytes (oder die Anzahl der Zeichen) sagen? Wie würden Sie die Zeichenfolge überqueren? usw.

Der Grund, den ich frage, ist, dass, wie ich auf UTF-8-Zeichen sagte, mehr als ein Byte richtig sein kann? Also offensichtlichmyString[7] undmyString[8] - bezieht sich möglicherweise nicht auf zwei verschiedene Zeichen. Auch die Tatsache, dass der UTF-8-String aus zehn Bytes besteht, sagt nicht viel über die Anzahl der Zeichen aus, oder?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage