Obter um comprimento calculado de uma corda Núcleo Fundação dada uma codificação

votos
1

Existe uma maneira para obter o comprimento em bytes de um CFStringdado uma codificação de caracteres arbitrária? Parece possível porque a função CFStringGetSmallestEncodingdeve fazer alguns cálculos já, mas eu não quero usar o menor codificação, eu quero descobrir como grande um buffer eu poderia precisar alocar se eu quiser os bytes na codificação UTF-8 ou talvez outra codificação de caracteres de largura variável.

É possível? Ou eu preciso para alocar o tamanho do buffer máximo possível usando CFStringGetMaximumSizeForEncoding?

Publicado 29/03/2009 em 22:37
fonte usuário
Em outras línguas...                            


1 respostas

votos
2

Você tem Foundation disponível? Se assim for, você poderia lançar o CFStringRef a um NSString * e usar lengthOfBytesUsingEncoding :.

Tenha em mente que CFStringGetMaximumSizeForEncoding é O (1), ao passo que lengthOfBytesUsingEncoding: é O (n) no comprimento da corda (que são essencialmente fazer a conversão duas vezes), assim você ainda pode ser melhor fora de usar CFStringGetMaximumSizeForEncoding para alocar um buffer.

Respondeu 29/04/2009 em 14:17
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more