位字节字符与字(字母跟汉字)的爱恨情仇

Posted 一腔诗意醉了酒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位字节字符与字(字母跟汉字)的爱恨情仇相关的知识,希望对你有一定的参考价值。

在开发过程中,我们经常遇到位、字节、字符以及字之间的关系。比如说mysql中创建表的时候我们一般都会使用char(m),varcahr(n)等,那你真的知道他们代表什么意思吗?不妨一起来讨论一下:


ps: 先来放个大招吧

位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。

字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示,1B(byte,字节)= 8bit(位)

字符:是指计算机中使用的字母、数字、字和符号

  • ASCII 码:

    1. 1个英文字母(不分大小写)= 1个字节的空间
    2. 1个中文汉字 = 2个字节的空间
    3. 1个ASCII码 = 一个字节
  • UTF-8编码:

    1. 1个英文字符 = 1个字节
    2. 1个英文标点 = 1个字节
    3. 1个中文(含繁体) = 3个字节
    4. 1个中文标点 = 3个字节
  • Unicode编码:

    1. 1个英文字符 = 2个字节
    2. 1个英文标点 = 2个字节
    3. 1个中文(含繁体) = 2个字节
    4. 1个中文标点 = 2个字节
因为网上的优质文章比较多,只是比较难寻找,
为了节省大家时间,我找了几篇比较好的文章放在下面。
  • 精选相关文章
  1. 计算机中,为什么一个字节是8位?

依据ascill码表来分析,为什么一个字是8位

  1. ASCII、Unicode、UTF-8、UTF-16、GBK、GB2312、ANSI等编码方式简析

标准ASCII码占用一个字节,但是只用了后7位,第一位是0.一个字节本来可以表示256种不同情况,而由此ASCII码只有128种符号。这128种符号包括英文26字母的大小写、数字0-9、32个不可打印的控制字母、符号(就是我们在键盘上可以看到的符号)

  1. GBK,UTF-8,UTF-16之间的转换
  • 不同编码转换的理论基础
    1. UTF-16转UTF-8
    2. UTF-16转GBK
    3. UTF-16和UTF-8之间的转换

  1. UTF-8, a transformation format of ISO 10646

建议从1开始看,了解其所以然。

从小学数学的角度来看的话就是:字 ≥ 字符 ≥ 字节 > 位

以上是关于位字节字符与字(字母跟汉字)的爱恨情仇的主要内容,如果未能解决你的问题,请参考以下文章

位字节字符与字(字母跟汉字)的爱恨情仇

一个汉字等于多少个字节?

Java 中,数字,汉字,英文字母,...占多少字节

Byte数据类型—Java

字字符字节有什么区别

字符编码