当前位置: java基础教程 > 12-java.io基础IO包 > 阅读正文

字节,字符,字符编码 与 字符集

2021.2.15.   572 次   1689字

1.字节的概念

计算机存储的信息,实际上都是二进制数据

字节,是二进制的单位,8个二进制位(bit)表示一个字节(B)

所有的数据,都可以表示为字节,即一切皆字节

字节,都是二进制,一般用作计量单位,文件属性中通常显示包含 xxx字节

2.字符的概念

字符指类字形单位或符号,包括字母、数字、运算符号、标点符号…等功能性符号

字符是电子计算机或无线电通信中字母、数字、符号的统称

字符是二进制的另一种表现形式

简单点说,字符表示人用来看的东西,如各种符号,包括文字,数字,表情符号等

3.字符编码

1.字符和字节的对应关系

发明计算机的人,是使用英语,操作系统也是英语写的,

故操心系统默认只有英文字母和数字等少量符号,

字符编码,是指二进制和字符之间的关系,通常8个二进制位表示一个字符

因为字节是8个二进制位,所以字符和字节之间,也有一个转换关系

通常一个字节一个字符,有的是2个字节一个字符,有的是3个,4个…等

那么怎么知道哪些字符一个字节,哪些2个字节,3个,4个字节?

2.字符的编码

对于二进制数据,可以采取不同的方式 “加工”

当二进制数据”加工”后,就可以产生字符,如何”加工”,我们不需要关心

即,字符的产生,需要 2 个条件,一个是二进制数据,一个是”加工方式”

我们把这种”加工方式”,称为编码

4.字符集

1.字符集的概念

不同的编码方式,包含的字符,称为字符集

即,一种编码方式对应一个字符集

2.常见的编码方式 和 字符集

ASCII字符集 :操作系统本身带有的符号,1字节1字符,符号较少

其他编码均兼容 ASCII,即对于 ASCII 所包含的字符集,均使用1字节编码

  • ANSI字符集 –> 一个最早的编码方式,广泛使用,通常2字节一个中文
    • ISO-8859-1:依赖于ANSI的欧洲文字
    • GB2312:GB是国标的意思,GB2312是简体中文编码
    • GBK:最常见的中文编码,
    • GB18013:最新的中文码表,包含大量繁体和日韩汉字等
  • Unicode字符集 –> 互联网规范使用的一种编码方式,通常3字节一个中文
    • utf-8:最常用的编码方式,互联网协议均支持utf-8,中文使用1-4字节
    • utf-16:16个序列的编码方式,总之比utf-8占用更大
    • utf-32:32个序列的编码方式,总之比utf-16占用更大
3.下面是完整的 ASCII 编码表
ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符
0NUT32(space)64@96
1SOH3365A97a
2STX3466B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39,71G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR4577M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DCI49181Q113q
18DC250282R114r
19DC351383X115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23TB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92/124|
29GS61=93]125}
30RS62>94^126~
31US63?95127DEL
NUL 空VT 垂直制表SYN 空转同步
SOH 标题开始FF   走纸控制ETB  信息组传送结束
STX  正文开始CR   回车CAN  作废
ETX  正文结束SO   移位输出EM   纸尽
EOY  传输结束SI    移位输入SUB  换置
ENQ  询问字符DLE  空格ESC  换码
ACK  承认DC1  设备控制1FS   文字分隔符
BEL  报警DC2  设备控制2GS   组分隔符
BS   退一格DC3  设备控制3RS   记录分隔符
HT   横向列表DC4  设备控制4US   单元分隔符
LF   换行NAK  否定DEL  删除

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群