Frage

Gibt es eine Möglichkeit, die Länge in Bytes eines CFString gegeben eine beliebige Zeichencodierung zu bekommen? Es scheint möglich, da die Funktion CFStringGetSmallestEncoding bereits einige Berechnungen tun müssen, aber ich will nicht die kleinste Codierung verwenden, möchte ich herausfinden, wie groß ein Puffer könnte ich zuweisen müssen, wenn ich das Bytes in UTF-8-Codierung will oder vielleicht eine andere variabler Breite Zeichencodierung.

Ist es möglich? Oder muss ich die maximal mögliche Puffergröße mit CFStringGetMaximumSizeForEncoding zuzuteilen?

War es hilfreich?

Lösung

Haben Sie Foundation zur Verfügung? Wenn ja, können Sie die CFStringRef zu einem NSString werfen könnte * und verwenden lengthOfBytesUsingEncoding:.

Beachten Sie aber, dass CFStringGetMaximumSizeForEncoding O (1), während lengthOfBytesUsingEncoding: O (n) in der Länge der Zeichenfolge (Sie die Konvertierung zweimal im Wesentlichen tun), so können Sie immer noch besser dran CFStringGetMaximumSizeForEncoding mit zuzuteilen ein Puffer.

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