计算机字符编码全攻略

本文详细解析了字符编码的相关概念,包括字符、字符集、字符编码、汉字内码和内码。介绍了ASCII、GB2312、BIG5、GB18030和Unicode等字符集,以及Unicode的多种编码实现如UTF-8、UTF-16。以Java为例,阐述了内码与外码的转换过程,并解释了在特定场景下如Tomcat中字符编码的特殊处理。同时,文章还探讨了区位码、国际码与机内码的转换,并强调了计算机内存中统一使用Unicode编码的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看完本篇博客,会解决你对编码的所有疑问。

首先要搞清楚以下几个概念:

1.字符。字符是各种文字和符号的总称,包括国家文字、标点符号、图形符号、数字等,它是一个信息单位。

2.字符集。字符集是多个字符的集合。字符集种类较多,每个字符集包含的字符个数不同。常见的字符集有:ASCII字符集,GB2312字符集,BIG5字符集,GB18030字符集,Unicode字符集等。在字符集中,有一个码表的存在,每一个字符在各自的字符集中对应着一个唯一的码。但是同一个字符在不同字符集中的码是不一样的。比如字符“中”在Unicode和GB18030中就分别对应着不同的码(20013和54992)。

3.字符编码。计算机要准确的处理各种字符集中的字符,就需要对字符进行编码(即用特定的二进制数值对应该字符或者说将字符在字符集中的对应位置化为二进制),称为字符编码。字符集与字符编码一一对应。(Unicode除外,它有多种编码实现UTF-8,UTF-16,UTF-32等)

4.汉字内码。指计算机汉字系统中使用的二进制字符编码,是沟通输入、输出与系统平台之间的交换码,通过内码可以达到通用和高效率传输文本的目的。

5.内码。char或String在内存里使用的编码方式。

6.外码。除了内码都可以认为是外码。(包括class文件的编码)

 

在这里做下小结:字符相当于我们汉语词典中的汉字,字符编码相当于汉语词典中的拼音(或者某一页,第几个字),字符集相当于汉语词典。

不同的汉语词典,各个汉字的所在页码和在页码中的索引数不同,这就是不同的字符集中,字符编码不同。在这当中有一本词典与众不同,就是Unicode,它是专门为了解决字符集码表不一致而推出的,统一了所有字符对应的码,因此在这个规范下,所有字符对应的码都是一致的(统一码),但是统一码只规定了字符与码表的一一对应关系,却没有规定该如何实现,后面根据这个字符集实现了多种存储方式(存储在硬盘中)包括UTF-8,UTF-16,UTF-32。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值