0


【附章5计算机字符编码】多种字符编码集的说明

❤写在前面
❤博客主页:努力的小鳴人
❤系列专栏:JavaSE超详总结😋
❤欢迎小伙伴们,点赞👍关注🔎收藏🍔一起学习!
❤如有错误的地方,还请小伙伴们指正!🌹

🔥系列传送门
【11章Java泛型】全面解读Java泛型【热榜】
【10章Java集合】几张脑图带你进入Java集合的头脑风暴
【09章Java注解】让你全面认识这未来潜力巨大的「注解」【热榜】
【08章Java枚举类】简单易懂的enum【热榜】
【07章Java常用类】盘点 Java常用类【热榜】
在这里插入图片描述

文章目录


一、基础知识

  1. 位 bit 最小的单元字节 byte 机器语言的单位 1byte=8bits 1KB=1024byte 1MB=1024KB 1GB=1024MB
  2. 二进制 binary 八进制 octal 十进制 decimal 十六进制 hex
  3. 字符是各种文字和符号的总称,包括各个国家的文字,标点符号,图形符号,数字等。 ●字符集字符集是多个符号的集合,每个字符集包含的字符个数不同。 ●字符编码字符集只是规定了有哪些字符,而最终决定采用哪些字符,每一个字符用多少字节 表示等问题,则是由编码来决定的。计算机要准确的处理各种字符集文字,需要进行字符编码, 以便计算机能够识别和存储各种文字。

二、ASCII

American Standard Code for Information Interchange

美国标准信息交换代码

用一个字节的7位可以表示

美国国家标准协会 ANSI 制定的一个标准,规定了常用字符的集合以及每个字符对应的编号,这就是 ASCII 字符集

  1. 是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,它是现今最通用的单字节编码系统
  2. 0到31及127(共33个)是控制字符或通信专用字符(其余为可显示字符) 32到126(共95个)是字符(32是空格),其中48到57为0到9十个阿拉伯数字 65到90为26个大写英文字母 97到122号为26个小写英文字母 其余为一些标点符号、运算符号在这里插入图片描述
  3. ASCII是美国标准,它不能良好满足其它讲英语国家的需要

三、ISO8859-1

拉丁码表。欧洲码表

单字节编码
  1. 向下兼容ASCII其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号
  2. ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号
  3. ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器
  4. 因ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃,换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题在这里插入图片描述

四、GB2312

信息交换用汉字编码字符集
  1. 中国的中文编码表:最多两个字节编码所有字符
  2. 收录六千七百六十三个汉字,其中一级汉字三千七百五十五个,二级汉字三千零八个
  3. 适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆
  4. 信息交换用汉字编码字符集和汉字输入编码之间的关系是,根据不同的汉字输入方法,通过必要的设备向计算机输入汉字的编码,计算机接收之后,先转换成信息交换用汉字编码字符,这时计算机就可以识别并进行处理
  5. 汉字输出是先把机内码转成汉字编码,再发送到输出设备

五、GBK

信息交换用汉字编码字符集--基本集

Chinese Internal Code Specification

  1. 中国的中文编码表升级,融合了更多的中文文字符号:最多两个字节编码
  2. GBK编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库
  3. GBK码对字库中偏移量的计算公式为:**[(GBKH-0xB0)0x5E+(GBKL-0xA1)](汉字离散后每个汉字点阵所占用的字节)**
  4. 所有字符包括在a1到a9中a1到fe的部分及a8,a9中40~a0的部分,包括标点符号、数学符号、数字序号、全角数字字母、日文平假名、片假名、希腊字母、俄文字母、图形符号、制表符、拼音、注音符号等

六、Unicode

国际标准码

所有的文字都用两个字节来表示

  1. Unicode是计算机科学领域里的一项业界标准,包括字符集、编码方案等
  2. 为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求
  3. 目前的Unicode字符分为17组编排,0x0000至0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案

传送门🔥 >>> Unicode字符列表

七、UTF-8

  1. UTF-8以字节为单位对Unicode进行编码。从Unicode到UTF-8的编码方式 如下:在这里插入图片描述
  2. 特点是对不同范围的字符使用不同长度的编码。对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同
  3. 变长的编码方式可用1-4个字节来表示一个字符
  4. 例1:"汉"字的Unicode编码是0x6C49 0x6C49在0x0800-0xFFFF之间,使用3字节模板:1110xxxx 10xxxxxx 10xxxxxx 将0x6C49写成二进制是:0110 1100 0100 1001, 用这个比特流依次代替模板中的x 得到:11100110 10110001 10001001,即E6 B1 89

🎁总结:多种字符编码集的说明了解了解心中有数嘿嘿
👌 作者算是一名Java初学者,文章如有错误,欢迎评论私信指正,一起学习~~
😊如果文章对小伙伴们来说有用的话,点赞👍关注🔎收藏🍔就是我的最大动力!
🚩不积跬步,无以至千里,书接下回,欢迎再见🌹


本文转载自: https://blog.csdn.net/m0_64996150/article/details/122745181
版权归原作者 努力的小鳴人 所有, 如有侵权,请联系我们删除。

“【附章5计算机字符编码】多种字符编码集的说明”的评论:

还没有评论