エンコーディング与えられたCore Foundationの文字列の計算長さを取得します。

StackOverflow https://stackoverflow.com/questions/695427

質問

任意の文字エンコーディング与えCFStringのバイト単位の長さを取得する方法はありますか?関数CFStringGetSmallestEncodingは、すでにいくつかの計算を行う必要がありますので、それは可能なようだが、私は最小のエンコーディングを使用したくない、私はUTF-8エンコーディングでバイトをしたい場合は、私が割り当てする必要があるかもしれませんどのように大きなバッファを知りたいですか多分別の可変幅の文字エンコーディングます。

それは可能ですか?それとも私がCFStringGetMaximumSizeForEncodingを使用して可能な最大バッファサイズを割り当てる必要があるのですか?

役に立ちましたか?

解決

あなたは利用できる財団を持っていますか?もしそうなら、あなたは* NSStringのにCFStringRefをキャストしlengthOfBytesUsingEncodingを使用することができます。

あなたがまだ割り当てにCFStringGetMaximumSizeForEncodingを使用したほうが良いかもしれので、O(n)は、文字列の長さは(あなたは、本質的に二回の変換を行っている)である:それCFStringGetMaximumSizeForEncodingがlengthOfBytesUsingEncodingに対し、O(1)、ですが、

を覚えておいてくださいバッファます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top