常用编码详解
2007-07-21 21:36:06 来源:WEB开发网核心提示: 1)UTF-8向UCS-4,UCS-2两者中任一个进行相互转换比较容易,常用编码详解(2),2)多8比特字节序列的第一个8比特字节指明了系列中8比特字节的数目,3)8比特字节值FE和FF永远不会出现,然后剩下的字符值依次放到前一个字节中,如此重复,4)在8比特字符流中字符边界从哪里开始较容
1)UTF-8向UCS-4,UCS-2两者中任一个进行相互转换比较容易。
2)多8比特字节序列的第一个8比特字节指明了系列中8比特字节的数目。
3)8比特字节值FE和FF永远不会出现。
4)在8比特字符流中字符边界从哪里开始较容易发现。
UTF-8定义:
在UTF-8中,字符采用1到6个8比特字节的序列进行编码。仅仅一个8比特字节的一个序列中,字节的高位为0,其他的7位用于字符值编码。n(n>1)个8比特字节的一个序列中,初始的8比特字节中高n位为1,接着一位为0,此字节余下的位包含被编码字符值的位。接着的所有8比特字节的最高位为1,接着下一位为0,余下每个字节6位包含被编码字符的位。
下表总结了这些不同的8比特字节类型格式。字母x指出此位来自于进行编码的UCS-4字符值。
UCS-4范围(16进制) UTF-8 系列(二进制)
0000 0000<->0000 007F 0xxxxxxx
0000 0080<->0000 07FF 110xxxxx 10xxxxxx
0000 0800<->0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000<->001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0020 0000<->03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000<->7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
从UCS-4 到 UTF-8编码规则如下:
1)从字符值和上表第一列中决定需要的8比特字节数目。着重指出的是上表中的行是相互排斥的,也就是说,对于一个给定的UCS-4字符,仅仅有一个有效的编码。
2)按照上表中第二列每行那样准备8比特字节的高位。
3)将UCS字符值的位,从低位起填充在标记为x地方。从UTF8序列中最后一个字节填起,然后剩下的字符值依次放到前一个字节中,如此重复,直到所有标记位x的位都进行了填充。
更多精彩
赞助商链接