2009-03-29 17 views
1

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

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

答えて

2

ファンデーションはありますか?もしそうなら、CFStringRefをNSString *にキャストし、lengthOfBytesUsingEncoding:を使用することができます。

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

関連する問題