字符集相关知识基础

字符集相关知识基础

Question:

字符在计算机中怎样表示?
如何完成字符和其所对应码值之间的转换?


字符在计算机中的存储和表示,都是字符对应的整数值,这个值就是编码值。
在转化字符和码值时,需要有一个字符集编码表,描述字符和其编码值之间的对应关系,将字符转化成码值的过程叫编码,将码值还原成字符的过程叫解码,这两个过程都离不开字符集

编码

当我们向计算机中输入数据,此时计算机会先求字符对应的码值,并保存字符对应的编码值。

解码

当我们需要输出字符时,计算机会根据字符对应的编码值,求出其对应的字符,然后输出。

为什么会出现乱码?

那是因为编码和解码采用的字符集并不相同。不同语言的字符集是不相同的,为了解决这个问题,人们定义了一种能包含所有已知字符的字符集,并且给每个字符都分配了唯一的编码值——Unicode字符集,用两个字节表示字符的编码值,但这个字符集只规定了编码值。编码值在计算机中存储的时候,可以有不同的存储方式,因此Unicode字符集有很多变种。

UTF-8

UTF-8定义了一种区间规则,这种规则可以和ASCII编码保持最大程度兼容。

表示字符所需字节数字符编码值
1字节0xxxxxxx
1字节110xxxxx xxxxxxxx
1字节1110xxxx 10xxxxxx 10xxxxxx

UTF-16

UTF-16遵循Unicode的编码规则,用两个字节编码一个字符,JVM 也是采用该字符集。

其它常见字符集

字符集描述
ASCII美国标准信息交换码
ISO8859-1拉丁码表,欧洲通用
GB2312中国的中文编码表
GBK中国的中文编码表,是GBK升级版
GB18030中国的中文编码表
BIG-5繁体中文字符,大五码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值