编码和字符集

目录

1.编码

2.字符集

2.1常见字符集

2.1.1 ASCII字符集 

2.1.2 GBxxx字符集

2.1.3 Unicode字符集 

3.字符集和字符编码的联系和区别


1.编码

将字符转换成二进制数字,以便在计算机中存储。每个字符集中的字符都对应一个唯一的二进制编码。例如我有英文字符 'A' ,现在要把它以二进制码 0100 0001 存储于计算机中。

2.字符集

字符集是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。

计算机要准确的存储和识别各种字符集符号,需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有ASCII字符集、GBK字符集、Unicode字符集等。

2.1常见字符集

2.1.1 ASCII字符集 

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,用于显示现代英语,主要包括控制字符(回车键、退格、换行键等)和可显示字符(英文大小写字符、阿拉伯数字和西文符号)。
基本的ASCII字符集,使用7位(bits)表示一个字符,共128字符。最开始计算机只在美国人用,他们的语言只需要52个(算上大小写)英文字母,加上一些数字,标点,符号和控制字符之类的,拢共100多个就够用了。后来又发现有了一些非英文的新的字母、符号等被需要,所以就出现了ASCII的扩展字符集。

于是ASCII字符集分为3部分:

  1. ASCII非打印控制字符,0~31,32个
  2. ASCII打印字符,32~127,96个
  3. 扩展ASCII打印字符,128~255,128个

2.1.2 GBxxx字符集

面向中文的字符编码主要有GB2312、GBK、GB18030和Big5几种。

1.GB2312:

简体中文码表。中国有6000多个常用汉字,显然一个字节的宽度是不够表示这么多汉字的,需要两个字节。因此规定:

1)小于127的字符的意义与原来相同;
2)两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(高字节)从 0xA1 用到 0xF7 ,后面一个字节(低字节)从 0xA1 到 0xFE 。
这样大约可以组合了包含7000多个简体汉字,此外数学符号、罗马希腊的字母、日文的假名们都编进去了,连在ASCII里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。
2.GBK:

最常用的中文码表。是在GB2312标准基础上的扩展规范,使用了双字节编码方案,共收录了21003个汉字,完全兼容GB2312标准,同时支持繁体汉字以及日韩汉字等。
3.GB18030:

最新的中文码表。为解决少数民族文字问题,再扩展几千个新的少数民族文字字,GBK 扩成了 GB18030 收录汉字70244个,采用多字节编码,每个字可以由1个、2个或4个字节组成。支持中国国内少数民族的文字,同时支持繁体汉字以及日韩汉字等。

2.1.3 Unicode字符集 

Unicode编码系统为表达任意语言的任意字符而设计,是业界的一种标准,也称为统一码、标准万国码。

Unicode 的编码范围为 U+0000 ~ U+10FFFF,整个编码空间划分为17个 Plane 。每个平面包含2^个16个代码点 (code point)。所谓代码点,就是文字符号在Unicode 中对应的那个值, 通常写成 U+ABCD 的格式。

它最多使用4个字节的数字来表达每个字母、符号,或者文字。有三种编码方案,UTF-8、UTF-16和UTF-32。最为常用的UTF-8编码。

这里主要讲讲UTF-8编码,无论是 UTF-16/32 还是 UCS-2/4,一个字符都需要多个字节来编码,显然有些浪费。由此 UTF-8 产生了。UTF-8编码,可以用来表示Unicode标准中任何字符,它是电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码。所以,我们开发Web应用,也要使用UTF-8编码。它使用一至四个字节为每个字符编码,编码规则:
1)128个US-ASCII字符,只需一个字节编码。
2)拉丁文等字符,需要二个字节编码。
3)大部分常用字(含中文),使用三个字节编码。
4)其他极少使用的Unicode辅助字符,使用四字节编码。

3.字符集和字符编码的联系和区别

字符集和字符编码的联系:

字符集是多个字符的集合,可以理解为二进制数,与字符的映射关系,唯一的一个编号就代表一个字。字符编码是计算机中对字符的表示方式。
字符集与字符编码区别:
1.字符集是书写系统字母与符号的集合。
2.字符编码则是将字符映射为一特定的字节或字节序列,是一种规则。

大佬网址:(133条消息) 字符集和字符编码的类别与区分详解_小龙狗的博客-CSDN博客_字符集和字符编码区别

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值