`

基础概念

阅读更多
基础概念


一、基础概念

概念英文说明其他
比特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编码,占两字节,即一个字符,可表示一个汉字
ASCIIAmerican 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繁体字字符集
DBCSDouble Byte Charecter Set双字节字符集;GB2312/GBK/GB18030统称两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里
UnicodeUniversal Multiple-Octet Coded Character Set,简称UCS规定用16位即2字节表示所有字符;原ASCII中的半角字符因只占1字节,扩展后高位字节为0是一种字符集
通用字符集Universal Character Set,UCS由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。历史上存在两个独立的尝试创立单一字符集的组织,即国际标准化组织(ISO)和多语言软件制造商组成的统一码联盟-
UCS-2Universal Character Set coded in 2 octetsUCS-2是用两个字节来表示代码点其取值范围为 U+0000~U+FFFF
UCS-4Universal Character Set coded in 4 octetsUCS-2是用四个字节来表示代码点范围为 U+00000000~U+7FFFFFFF,其中 U+00000000~U+0000FFFF和UCS-2是一样的
UTFUCS Transfer FormatUnicode传输标准,每次传输的比特数规定存储方式
UTF-8-每次8个位传输数据是一种字符编码方案,变长的编码方式,使用1~4个字节表示一个符号,根据不同的符号而变化字节长度
UTF-16-每次16个位传输数据是一种字符编码方案,两个字节来表示一个代码点
UTF-16BOMBOM(Byte Order Mark)文件开头需要通过字符标明当前是大头顺序or小头顺序FFFE 小头,FEFF大头,与UCS-2完全对应
UTF-16BEBig Endian大头顺序,即高位在前,低位在后-
UTF-16LELittle Endian小头顺序,即低位在前,高位在后-
UTF-32-每次32位传输数据是一种字符编码方案,用四个字节表示代码点,与UCS-4完全对应



博文参考:
Unicode 和 UTF-8 有何区别?
Unicode详解(UCS-2,UCS-4,UTF-8,UTF-16,UTF-32)

二、字符与字节在不同编码格式下的对应
单位:字节
编码格式英文数字汉字半角标点全角标点
ASCII1212
GB23121212
UTF-81313
Unicode2222
UTF-162222
UTF-324444


博客参考:
字符与字节有什么区别

三、Unicode

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

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

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

四、

博文参考:
http://bbs.csdn.net/topics/270062448




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics