编码Unicode与解码

  1.编码(Unicode)    

        unicode(统一码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

        最早的计算机在设计时采用8个比特(bit)作为一个字节(1字节=8位,即1个字节对应8位二进制数),一个字节能表示的最大的整数是255,0-255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。

        中国字比较多,1个字节只能表示256个字符,2个字节是2*8=16位,可以表示65535个字符。6万多个足以表示我们经常用的那些字了。所以我们用2字节表示汉字。且不能和ASCII编码冲突,所以中国制定了GB2312编码,用来把中文编进去。

        类似的,日文和韩文等其他语言也有这个问题,为了统一所有文字的编码,Unicode营运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。Unicode给所有的字符指定了一个数字用来表示该字符。

Unicode仅仅只是一个字符集,规定了符合对应的二进制代码,至于对这个二进制代码如何存储并没有任何规定。

unicode编码系统,可以分为编码方式和实现方式两个层次。

通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字-节编码。

UTF是“Unicode Transformation Format”的缩写,可译为Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据。

2.Unicode编码方案

Unicode没有规定字符对应的二进制码如何存储。Unicode只规定了字符对应的二进制数据,但是没有规定这种二进制数据在内存中具体用几个字节存储。为了较好的解决Unicode的编码问题,UTF-8是在互联网上使用最广的一种Unicode的实现方式(之一)。UTF-8最大的特点是可变长,可以使用1-4个字节表示一个字符,根据字符的不同变换长度。

Bytes的数据与字符串类型数据的转换就是编码与解码的转换,utf-8是编码时指定的格式。

3.编码与解码

编码 / 解码本质上是一种映射(对应关系)。

编码:真实字符与二进制串的对应关系,真实字符——>二进制串

解码:二进制串与真实字符的对应关系,二进制串——>真实字符

猜你喜欢

转载自blog.csdn.net/m0_37215794/article/details/82107678