基础概念

[align=center][size=large]基础概念[/size][/align]

一、基础概念

[table]
|概念|英文|说明|其他|
|比特|bit|数据传输大多以比特为单位|二进制位:0或1|
|字节|Byte|数据存储以字节为单位|1Byte = 8 bit|
|字符|Character|计算机中使用的文字和符号|比如:1、2、3、A、B、C|
|字符集|Charset|是一个系统支持的所有抽象字符的集合|字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等|
|字符编码|Character Encoding|将符号转换为计算机可以接受的数字系统的数,称为数字代码|-|
|编码规则|-|将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)|-|
|代码点|Code Point|码位 / 码点|是指一个编码表中的某个字符对应的代码值,也就是Unicode编码表中每个字符对应的数值;为每一个「字符」分配一个唯一的 ID|
|代码单元|Code Unit|在UTF-16中的基本多语言级别中,每一个字符用16位表示,通常被称为代码单元|Java中Character采用UTF-16编码,占两字节,即一个字符,可表示一个汉字|
|ASCII|American Standard Code for Information Interchange|美国信息互换标准代码|ASCII码使用7bit表示一个字符,共128个字符;0表示空,1~32 控制码;33~127 字母、数字;|
|ISO-8859-1|-|ASCII基础上扩展|用8bit表示1个字符,共256个 字符;128~255 扩展编码|
|GB2312|-|在ASCII基础上扩展;一个小于127的字符的意义与原来相同,即ASCII;两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到0xF7,后面一个字节(低字节)从0xA1到0xFE|半角:ASCII中即0~127的字符;全角:在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码|
|GBK|-|在GB2312基础上扩展;第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字|GBK包含GB2312|
|GB18030|-|在GBK基础上扩展,与GBK基本兼容|包含少数民族文字|
|BIG5|-|Big5码是一套双字节字符集,使用了双八码存储方法,以两个字节来安放一个字。第一个字节称为"高位字节",第二个字节称为"低位字节"。"高位字节"使用了0x81-0xFE,"低位字节"使用了0x40-0x7E,及0xA1-0xFE|繁体字字符集|
|DBCS|Double Byte Charecter Set|双字节字符集;GB2312/GBK/GB18030统称|两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里|
|Unicode|Universal Multiple-Octet Coded Character Set,简称UCS|规定用16位即2字节表示所有字符;原ASCII中的半角字符因只占1字节,扩展后高位字节为0|是一种字符集|
|通用字符集|Universal Character Set,UCS|由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。历史上存在两个独立的尝试创立单一字符集的组织,即国际标准化组织(ISO)和多语言软件制造商组成的统一码联盟|-|
|UCS-2|Universal Character Set coded in 2 octets|UCS-2是用两个字节来表示代码点|其取值范围为 U+0000~U+FFFF|
|UCS-4|Universal Character Set coded in 4 octets|UCS-2是用四个字节来表示代码点|范围为 U+00000000~U+7FFFFFFF,其中 U+00000000~U+0000FFFF和UCS-2是一样的|
|UTF|UCS Transfer Format|Unicode传输标准,每次传输的比特数|规定存储方式|
|UTF-8|-|每次8个位传输数据|是一种字符编码方案,变长的编码方式,使用1~4个字节表示一个符号,根据不同的符号而变化字节长度|
|UTF-16|-|每次16个位传输数据|是一种字符编码方案,两个字节来表示一个代码点|
|UTF-16BOM|BOM(Byte Order Mark)|文件开头需要通过字符标明当前是大头顺序or小头顺序|FFFE 小头,FEFF大头,与UCS-2完全对应|
|UTF-16BE|Big Endian|大头顺序,即高位在前,低位在后|-|
|UTF-16LE|Little Endian|小头顺序,即低位在前,高位在后|-|
|UTF-32|-|每次32位传输数据|是一种字符编码方案,用四个字节表示代码点,与UCS-4完全对应|

[/table]


博文参考:
[url=https://www.zhihu.com/question/23374078]Unicode 和 UTF-8 有何区别?[/url]
[url=http://blog.csdn.net/left_la/article/details/36188181]Unicode详解(UCS-2,UCS-4,UTF-8,UTF-16,UTF-32)[/url]

二、字符与字节在不同编码格式下的对应
[table]
单位:字节
|编码格式|英文数字|汉字|半角标点|全角标点|
|ASCII|1|2|1|2|
|GB2312|1|2|1|2|
|UTF-8|1|3|1|3|
|Unicode|2|2|2|2|
|UTF-16|2|2|2|2|
|UTF-32|4|4|4|4|
[/table]

博客参考:
[url=http://blog.csdn.net/andyzhaojianhui/article/details/53785656]字符与字节有什么区别[/url]

三、Unicode

1.Little endian和Big endian
第一个字节在前,Big endian
第二个字节在前,Little endian

参考博客:
[url]http://blog.csdn.net/lcfeng1982/article/details/6830584[/url]
[url]http://blog.csdn.net/tianjf0514/article/details/7854624[/url]

2.UTF-16 UTF16BE UTF16LE UTF16BOM
“ABC”这三个字符用各种方式编码后的结果如下:
UTF-16BE 00 41 00 42 00 43
UTF-16LE 41 00 42 00 43 00
UTF-16(Big Endian) FE FF 00 41 00 42 00 43
UTF-16(Little Endian) FF FE 41 00 42 00 43 00
UTF-16(不带BOM) 00 41 00 42 00 43

四、

博文参考:
[url]http://bbs.csdn.net/topics/270062448[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值