Fork me on GitHub

字符、字节与编码

--------------siwuxie095

   

   

   

   

   

   

字节(Byte)

   

字节是通过网络传输信息 或在硬盘(或内存)中存储信息的单位,是计算机

信息技术用于计量存储容量和传输容量的一种计量单位

   

1个字节等于8位二进制,即一个8位的二进制数,是一个很具体的存储空间

   

如:0x01,0x45,0xFA …

   

   

   

   

   

字符(Char)

   

字符是人们使用的记号,是抽象意义上的一个符号

   

如:'1''''a''$'''

   

   

   

   

   

字符集(Charset)

   

"字符集" 也称作 "编码"

   

各个国家和地区所制定的不同 ANSI 编码标准中,都只规定了各自语言所需的 "字符"

   

如:汉字标准(GB2312)中没有规定韩国语字符怎样存储

   

   

这些 ANSI 编码标准所规定的内容有两层含义:

   

1)使用那些字符。即 哪些汉字、字母和符号会被收入标准中。

所包含 "字符" 的集合就叫做 "字符集"

   

2)规定每个字符分别用一个字节还是多个字节存储,用哪些字节来存储,

这个规定就叫做 "编码"

   

   

   

各个国家和地区在制定编码标准的时候,"字符的集合" "编码" 一般都是同时制定的

   

因此,平常所说的 "字符集",如:GB2312、GBK、JIS等,除了有

"字符的集合" 这层含义外,同时也包含了 "编码" 的含义

   

   

   

   

   

ANSI

   

字符串 在内存中,如果 "字符" 是以 ANSI 编码形式存在的,一个字符可能

使用一个字节或多个字节来表示,称这种字符串为 ANSI 字符串 或 多字节

字符串。

   

不同 ANSI 编码所规定的标准不同,因此,对于一个给定的多字节字符串,

必须知道它采用的是哪一种编码规则,才能知道它包含哪些 "字符"

   

   

   

   

   

UNICODE

   

字符串 在内存中,如果 "字符" 是以 UNICODE 中的序号存在的,称这种字符串

UNICODE 字符串 或 宽字节字符串

   

对于 UNICODE 字符串来说,不管在什么环境下,它所代表的 "字符" 内容总是

不变的

   

用来给 UNICODE 字符集编码的标准有很多种,如:UTF-8,UTF-7,UTF-16,

UnicodeLittle,UnicodeBig 等

   

 

   

   

   

   

   

   

无论操作任何形式的数据,都可以使用读写字节的方式来实现

   

但是,如果操作的是文本数据,需要使用字符来操作它,一旦

涉及到字符,就需要为当前的字符指定编码,否则可能会乱码

   

   

   

   

   

【made by siwuxie095】

posted on 2017-03-25 15:27  siwuxie095  阅读(176)  评论(0编辑  收藏  举报

导航