编码字符集与字符集编码的区别

编码字符集字符集编码

 

    编码字符集是字符的集合,即对所有的字符进行编号,通过这个编号,就可以知道对应的字符。对于同一个字符,不同的字符集所制定的整数编号也不尽相同,例如“儿”这个字,在Unicode中,它的编号是0x513F,而在另一种编码字符集比如Big5中,这个字就是第0xA449个字符了。

    字符集编码是如何将字符集中的一个字符的整数编号对应到一个计算机认识的二进制的整数值的编码方法。英文所有的字符集编码方案中,英文字母的整数编号与其在计算机内部存储的二进制形式都一致。但很多编码方案都将字符的编号进行转换后存储在计算机中。以“汉”字为例,“汉”的Unicode值为0x6C49,但其编码为UTF-8格式后的值为0xE6B189。另一种编码方案UTF-16,对于Unicode中的前65536个字符编号都不做变换,直接作为计算机存储时使用的值,但对65536以后的字符,仍然要做变换。Unicode是一个编码字符集,不是字符集编码,通常口头说的Unicode编码指的是UTF-16。UTF-16提供了surrogate pair机制,使得Unicode中码位大于65536的那些字符得以表示,基本的思想就是用两个16位的编码表示一个字符。UTF-32,他对所有的Unicode字符均不做变换,直接使用编号存储!但这种编码方案太浪费存储空间,1个字节就可以搞定的英文字符,它都必须使用4个字节。

 

 

参考自:http://www.blogjava.net/zhenandaci/archive/2008/12/24/248041.html

你可能感兴趣的:(NLP,learning,machine)