UTF-1
Série Unicode |
Unicode |
UCS |
UTF-7 |
UTF-8 |
UTF-16 |
UTF-32/UCS-4 |
SCSU |
Punycode |
UTF-1 é um formato de transformação de ISO 10646/Unicode em fluxos de bytes, a fim de serialização. Devido ao seu formato não é possível resincronizar se a decodificação começa no meio dum caractere (o que dificulta o truncamento) e rotinas de busca de caractere não podem ser usadas de forma confiável. Dados tais problemas, esse padrão nunca ganhou grande adoção, sendo quase que completamente substituído pelo UTF-8.
Padrão
UTF-1 é uma codificação multi-byte tal qual UTF-8, o que significa que um código Unicode pode estar codificado em um, dois, três ou cinco octetos. Enquanto a faixa do ASCII é codificada como um octeto assim como no UTF-8, os octetos 0x21 - 0x7E também são usados em codificações multi-byte, inviabilizando o UTF-1 para diversos protocolos Internet tais como MIME.
O UTF-1 não usa caracteres de controle SOH: qualquer octeto 0x00 - 0x20 ou 0x7F - x9F corresponde ao código correspondente em ISO-8859-1 (U+0000 - 0020 e U+007F-009F, respectivamente). Esse formato que estipula 66 octetos "protegidos" tenta ser compatível com o ISO 2022.
O esquema de codificação do UTF-1 usa uma aritmética de "módulo 190" (), desenvolvida para codificar todos os 31 bits do Conjunto Universal de Caracteres original (UCS-4). em comparação, o UTF-8 "protege" todos os 128 octetos ASCII, e necessita dos dois bits finais de códificações multi-byte para tal, resultando numa aritmética de "módulo 64" (, ). Já BOCU-1 "protege" somente o conjunto mínimo necessário para manter a compatibilidade com MIME (0x00, 0x07–0x0F, 0x1A–0x1B e 0x20), resultando numa aritmética de "módulo 243" ().
Código | UTF-16BE | UTF-16LE | UTF-8 | UTF-1 |
---|---|---|---|---|
U+007F | 007F | 7F00 | 7F | 7F |
U+0080 | 0080 | 8000 | C280 | 80 |
U+009F | 009F | 9F00 | C29F | 9F |
U+00A0 | 00A0 | A000 | C2A0 | A0A0 |
U+00BF | 00BF | BF00 | C2BF | A0BF |
U+00C0 | 00C0 | C000 | C380 | A0C0 |
U+00FF | 00FF | FF00 | C3BF | A0FF |
U+0100 | 0100 | 0001 | C480 | A121 |
U+015D | 015D | 5D01 | C59D | A17E |
U+015E | 015E | 5E01 | C59E | A1A0 |
U+01BD | 01BD | BD01 | C6BD | A1FF |
U+01BE | 01BE | BE01 | C6BE | A221 |
U+07FF | 07FF | FF07 | DFBF | AA72 |
U+0800 | 0800 | 0008 | E0A080 | AA73 |
U+0FFF | 0FFF | FF0F | E0BFBF | B548 |
U+1000 | 1000 | 0010 | E18080 | B549 |
U+4015 | 4015 | 1540 | E48095 | F5FF |
U+4016 | 4016 | 1640 | E48096 | F62121 |
U+D7FF | D7FF | FFD7 | ED9FBF | F72FC3 |
U+E000 | E000 | 00E0 | EE8080 | F73A79 |
U+F8FF | F8FF | FFF8 | EFA3BF | F75C3C |
U+FDD0 | FDD0 | D0FD | EFB790 | F762BA |
U+FDEF | FDEF | EFFD | EFB7AF | F762D9 |
U+FEFF | FEFF | FFFE | EFBBBF | F7644C |
U+FFFD | FFFD | FDFF | EFBFBD | F765AD |
U+FFFE | FFFE | FEFF | EFBFBE | F765AE |
U+FFFF | FFFF | FFFF | EFBFBF | F765AF |
U+10000 | D800DC00 | 00D800DC | F0908080 | F765B0 |
U+38E2D | D8A3DE2D | A3D82DDE | F0B8B8AD | FBFFFF |
U+38E2E | D8A3DE2E | A3D82EDE | F0B8B8AE | FC21212121 |
U+FFFFF | DBBFDFFF | BFDBFFDF | F3BFBFBF | FC2137B27A |
U+100000 | DBC0DC00 | C0DB00DC | F4808080 | FC2137B27B |
U+10FFFF | DBFFDFFF | FFDBFFDF | F48FBFBF | FC21396E6C |
Referências
- «ISO IR 178» (PDF) (em inglês). Consultado em 13 de abril de 2010. Arquivado do original (PDF) em 23 de abril de 2013 Especificação do UTF-1