Frage

Ich habe eine Zeichenfolge in UCS-2 Codierung. Ich brauche diese Zeichenfolge an einem anderen UCS-2-Zeichenfolge zu kopieren. Vor dem Kopieren Ich brauche die Länge eines UCS-2-String für memeory Zuordnung zu berechnen.

Wie berechnet Länge eines UCS-2-String?

War es hilfreich?

Lösung

UCS2 führt keine Informationen über Stringlänge selbst. Ihre ursprüngliche String-Darstellung entweder 0-terminiert, wobei in diesem Fall können Sie einfach prüfen, ob eine 0 Codeeinheit (dh ein 16-Bit-Wert 0), oder es ist nicht 0-terminierte, in diesem Fall müssen Sie einig out-of- Band Informationen über die Länge der Saite (wie eine separat gespeicherten Puffergröße).

Im Allgemeinen UCS 2 ist eine Teilmenge von UTF-16 ( http: // www.unicode.org/faq/basic_q.html#14 ). Daher sollten Sie sich gut mit UTF-16-Tool, wie zum Beispiel der ICU-Bibliothek seines http: //site.icu- project.org/ .

Andere Tipps

Das hängt von dem String-Typ Sie verwenden. Wenn es kein Typ (nur ein Speicherpuffer bekannt, eine Zeichenfolge in UCS-2-Codierung enthält) ist, müssen Sie wissen, wie es dargestellt wurde. Es könnte eine vorangestellte Länge Anzahl hat, oder seine 0-terminiert wie plain old char * "C-Strings".

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top