UTF-1是一种将ISO 10646 / Unicode转化成字节流的方式。由于其本身的设计问题,如果自中间的一个字符开始解码,UTF-1將無法重新同步(這造成擷取的困難),而且UTF-1也沒辦法進行可靠的字节搜索。又因为UTF-1使用的除数不是2的幂,所以转化得也相当缓慢。由于以上这些问题,UTF-1从来没有得到广泛採用,并已被UTF-8所取代。

UTF-1
语言国际
现状已废弃
分类Unicode转换格式
EASCII
变长编码
拓展自ASCII
变换/编码ISO 10646Unicode
后续UTF-8

设计编辑

UTF-1是一个类似于UTF-8的多字节编码;一个单一的Unicode代码点可以被编码成一个、两个、三个或五个八位字节。而如同UTF-8ASCII码系列可被编码为一个八位字节,ASCII码的八位字节0X21 - 0x7E(十进制数33-126)也被用于UTF-1多字节编码;所以UTF-1不适合于许多互联网协议,包括MIME

UTF-1在其他编码里不使用C0和C1控制码-任何0x00-0X20或0x7F-0x9F的八位字节代表相应的在ISO-8859-1的编码位置(分别为U+0000-0020和U+007F-009F)。这种设计有66个八位字节的保护力求與ISO 2022兼容。

UTF-1编码系统使用190的求模运算(256-66=190),它被設計用来对完整的31位原版通用字符集(UCS-4)进行编码。相比较而言,UTF-8保护所有128个ASCII八位字节,而且需要两个跟踪字节的多字节编码才能达成这个目的,它构成对64的求模运算(8-2=6, 26=64)。BOCU-1只保护所需的兼容MIME的极小集(0x00,0X07-0X0F,0X1A-0X1B和0X20),构成对243的求模运算(256-13=243)。

编码位置UTF-16BEUTF-16LEUTF-8UTF-1
U+007F007F7F007F7F
U+008000808000C28080
U+009F009F9F00C29F9F
U+00A000A0A000C2A0A0A0
U+00BF00BFBF00C2BFA0BF
U+00C000C0C000C380A0C0
U+00FF00FFFF00C3BFA0FF
U+010001000001C480A121
U+015D015D5D01C59DA17E
U+015E015E5E01C59EA1A0
U+01BD01BDBD01C6BDA1FF
U+01BE01BEBE01C6BEA221
U+07FF07FFFF07DFBFAA72
U+080008000008E0A080AA73
U+0FFF0FFFFF0FE0BFBFB548
U+100010000010E18080B549
U+401540151540E48095F5FF
U+401640161640E48096F62121
U+D7FFD7FFFFD7ED9FBFF72FC3
U+E000E00000E0EE8080F73A79
U+F8FFF8FFFFF8EFA3BFF75C3C
U+FDD0FDD0D0FDEFB790F762BA
U+FDEFFDEFEFFDEFB7AFF762D9
U+FEFFFEFFFFFEEFBBBFF7644C
U+FFFDFFFDFDFFEFBFBDF765AD
U+FFFEFFFEFEFFEFBFBEF765AE
U+FFFFFFFFFFFFEFBFBFF765AF
U+10000D800DC0000D800DCF0908080F765B0
U+38E2DD8A3DE2DA3D82DDEF0B8B8ADFBFFFF
U+38E2ED8A3DE2EA3D82EDEF0B8B8AEFC21212121
U+FFFFFDBBFDFFFBFDBFFDFF3BFBFBFFC2137B27A
U+100000DBC0DC00C0DB00DCF4808080FC2137B27B
U+10FFFFDBFFDFFFFFDBFFDFF48FBFBFFC21396E6C

参见编辑

参考文献编辑

  • ISO IR 178 (PDF,256 KB,不再被使用的UTF-1规范)