Como calcular o comprimento de uma sequência UCS-2 e seu tamanho em C ++?

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

  •  21-09-2019
  •  | 
  •  

Pergunta

Eu tenho uma corda em UCS-2 codificação. Preciso copiar esta string para outra string ucs-2. Antes de copiar, preciso calcular o comprimento de uma sequência UCS-2 para alocação de memesia.

Como calcular o comprimento de uma sequência UCS-2?

Foi útil?

Solução

O UCS2 não possui informações sobre o comprimento da corda. Sua representação original de string é 0 terminada; nesse caso, você pode verificar se há uma unidade de código 0 (ou seja, um valor de 16 bits 0), ou não é terminado, nesse caso, você precisa de alguns Informações da banda sobre o comprimento da string (como um tamanho de buffer armazenado separadamente).

Em geral, o UCS 2 é um subconjunto de UTF-16 (http://www.unicode.org/faq/basic_q.html#14). Portanto, você deve ficar bem com as ferramentas UTF-16, como a biblioteca da UTI http://site.icu-project.org/.

Outras dicas

Isso depende do tipo de string que você está usando. Se não houver tipo (apenas um buffer de memória conhecido por conter uma string na codificação UCS-2), você deve saber como ela foi representada. Pode ter uma contagem de comprimento pré-adolescente ou ter 0 terminado como antigo simples char * "C Strings".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top