位、字节、字符、编码

不同编码方式下,一个英文字母占的字节是不同的:

1、ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。

2、UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节

3、Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节

位(bit)、字节(byte)、字符(char)、编码

1、位:

 数据存储的最小单位。每个二进制数字0或者1就是1个位;

2、字节:

 8个位构成一个字节;即:1 byte (字节)= 8 bit(位);
 1 KB = 1024 B(字节);
 1 MB = 1024 KB;   (2^10 B)
 1 GB = 1024 MB;  (2^20 B)
 1 TB = 1024 GB;   (2^30 B)

3、字符:

a、A、中、+、*、の......均表示一个字符;
一般 utf-8 编码下,一个汉字 字符 占用 3 个 字节;
一般 gbk 编码下,一个汉字  字符  占用 2 个 字节;

4、字符集:

即各种各个字符的集合,也就是说哪些汉字,
字母(A、b、c)和符号(空格、引号..)会被收入标准中;

5、编码:

规定每个“字符”分别用一个字节还是多个字节存储,
用哪些字节来存储,这个规定就叫做“编码”。
通俗的说:编码就是按照规则把字符翻译成对应的二进制数。

1)标准ASCII字符集:由96个打印字符、32个控制字符组成,一共128(2^7)个。
2)扩展ASCII字符集:将标准的ASCII最高位设为1,字符集一共有256(2^8)个。
3)GB2312字符集: 所有汉字字符在计算机内部采用2个字节来表示,每个字节的最高位规定为1。
4)GBK字符集:GB2312的扩充,兼容GB2312,除了收录GB2312所有的字符外,还收录了其他不常见的汉字、繁体字等。
5)Unicode字符集:容纳世界上所有语言字符和符号的集合;(以及对应的二进制数字)。Unicode只是一个编码规范,目前实现Unicode编码的只有三种:UTF-8、UCS-2和UTF-16,三种Unicode字符集之间可以按照规范进行转换。
6)UTF-8编码:UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容。

GB2312、GBK与UTF-8的区别

  • GB2312和GBK主要用于汉字的编码,而UTF-8是全世界通用的。
  • 处理汉字,使用 GB2312和GBK储存占内存要小。
  • 如果英文字符较多,则建议使用UTF-8节省空间。
  • 如果浏览器没有你使用的这种编码,你的网页内容就会变成无法识别的乱码。
  • GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换。
  • GB2312编码大约包含6000多汉字;GBK编码保留了所有GB2312编码,在此基础上进行编码范围的扩充,共22014个字符编码(包含特殊字符)。

参考资料:
1 https://blog.youkuaiyun.com/prdslf001001/article/details/78615823
2 https://blog.youkuaiyun.com/ZYY88886666/article/details/75285780

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值