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.

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
  • «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