UTF-32/UCS-4

Série Unicode
Unicode
UCS
UTF-7
UTF-8
UTF-16
UTF-32/UCS-4
SCSU
Punycode

UTF-32 ou UCS-4 são nomes alternativos para o método de codificação de caracters, usando a quantidade fixa de exatamente 32 bits para cada caractere Unicode.

Ele pode ser considerado como a forma de codificação mais simples, como todos os outros Unicode Transformation Formats (em português: Formato de Transformação Unicode) possui codificação de comprimento variável para vários code points.

No entanto, o UTF-32 usa 4 bytes para cada caractere, que é considerado ineficiente. Especificamente, caracteres que não pertencem ao Plano Básico Multilingual (PBM) são tão raros em quase todos os textos que eles podem ser considerados como pouco importantes para discussões importantes. Isto significa que UTF-32 é geralmente pelo menos o dobro ou quatro vezes maior que o tamanho normal das outras codificações.

Também, enquanto um número fixo de bytes por ponto de código pareça ser conveniente de primeiro, não é. Torna o truncamento levemente mais fácil, mas não tão significativo de UTF-8 e UTF-16. Não faz o cálculo de largura de uma string exibida mais fácil, exceto em casos muito limitados; mesmo com uma fonte de "tamanho fixo" pode haver mais que um ponto de código por posição de caractere (marcas combinadas) (por exemplo ideógrafos CJK). Combinando marcas também quer dizer que os editores não podem tratar um ponto de código como se fosse uma unidade para edição.

Por estas razões o UTF-32 é pouco utilizado na prática, com UTF-8 e UTF-16 sendo o método comum de codificar texto Unicode.

História

O padrão original ISO 10646 define uma forma de codificação de 31-bit chamado de UCS-4, em que cada caractere codificado em no Conjunto Universal de Caracteres (UCS em inglês) é representado por um valor de código amigavel de 32-bit em um espaço de código de inteiros entre 0 e hexadecimal 7FFFFFFF.

UCS-4 é suficiente para representar todo o espaço unicode, que possui 1114112 (= 220+216) pontos de código e portanto requer no máximo 10FFFF(hexadecimal). Algumas pessoas consideram que é um desperdício reservar um espaço tão grande de código para mapear um conjunto relativamente pequeno de pontos de código, então uma nova codificação, UTF-32, foi proposta. UTF-32 é um subconjunto do UCS-4 que usa valores de código de 32-bit somente do espaço de código de 0 a 10FFFF.

UTF-32 Era originalmente somente um subconjunto do padrão UCS-4, mas o Documento de Principios e Procedimentos de JTC1/SC2/WG2 afirmou que todas as atribuições futuras de caracteres serão limitados ao PBM (BMP) ou os primeiros 14 planos suplementares e removeu antigas provisões para posições de código privadas nos grupos de 60 a 7F e nos planos de E0 a FF.

De acordo com UCS-4 e UTF-32 agora podem ser considerados identicos, salvo que o padrão UTF-32 possui semantica Unicode adicional que precisa ser observada.

Ligações externas

Em inglês