Question

Y at-il un moyen d'obtenir la longueur en octets d'un CFString donné un codage de caractère arbitraire? Il semble possible que la fonction CFStringGetSmallestEncoding doit faire des calculs déjà, mais je ne veux pas utiliser le plus petit encodage, je veux savoir la taille d'un tampon je pourrais avoir besoin d'allouer si je veux les octets dans le codage UTF-8 ou peut-être un autre codage de caractères de largeur variable.

Est-il possible? Ou dois-je allouer la taille maximale du tampon possible en utilisant CFStringGetMaximumSizeForEncoding?

Était-ce utile?

La solution

Avez-vous la Fondation disponible? Si oui, vous pourriez lancer la CFStringRef à un NSString * et utiliser lengthOfBytesUsingEncoding:.

Gardez à l'esprit que CFStringGetMaximumSizeForEncoding est O (1), alors que lengthOfBytesUsingEncoding: est O (n) de la longueur de la chaîne (vous essentiellement faites la conversion deux fois), de sorte que vous pouvez toujours préférable d'utiliser CFStringGetMaximumSizeForEncoding d'allouer un tampon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top