计算机基础:ASCII 、UTF-8、Unicode是什么,乱码如何产生?

恶补基础

字节(Byte)

字节(Byte) :是计算机数据的基本存储单位,一个中文占2个字节

  • 1byte(字节) = 8bit(位二级制数)
  • 1KB = 1024字节
  • 1MB = 1024KB
  • 1GB = 1024MB
  • 1TB = 1024GB

一个字节表示最大整数为255(二进制11111111 = 十进制255),两个字节65535

:字由若干字节构成,是据算计处理数据时一次存取,加工和传送的数据长度。字是计算机处理数据和运算的单位。

字长

字长:字的位数叫字长,计算机的字长决定了其CPU一次操作处理实际位数的多少,字在不同的地址出现其含义是不相同。例如,送往控制器去的字是指令,而送往运算器去的字就是一个数。

  • 8 位机子:一个字等于1个字节,字长为8位;
  • 16位机子:一个字等于2个字节,字长为16位;
  • 32位机子:一个字等于4个字节,字长为32位;
  • 64位机子:一个字等于8个字节,字长为64位;

这里的多少位指的是字长,而字又是由字节构成,所以 字长/8 就知道一个字有多少字节了。

硬盘生产商是以GB(十进制,即10的3次方=1000,如1MB=1000KB)计算的,而电脑(操作系统)是以GiB(2进制,即2的10次方, 如1MiB=1024KiB)计算的,但是国内用户一般理解为1MiB=1M=1024 KB, 所以为了便于中文化的理解,翻译MiB为MB也是可以的。
同样根据硬盘厂商与用户对于1MB大小的不同理解,所以好多160G的硬盘实际容量按计算机实际的1MiB=1024KB算都不到160G,这也可以解释为什么新买的硬盘“缺斤短两”并没有它所标示的那么大。

字符集

字符(Character)是各种文字和符号的总称,字符集(Character set)是多个字符的集合。

  1. ASCII:主要用于显示现代英语和其他西欧语言
  2. GB2312:简体中文字符集
  3. BIG5:台湾
  4. GB18030:中国大陆、香港、台湾、日本和韩国等东亚地区
  5. Unicode:为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。使用十六进制数字,而且在书写时在前面加上前缀“U+”。
    5.1 UTF-8
    UTF-8是Unicode的其中一个使用方式。UTF是 Unicode Tranformation Format,即把Unicode转做某种格式的意思。
    使用可变长度字节来储存 Unicode字符,使得双字节的Unicode能够在现存的处理单字节的系统上正确传输。

正文

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器

发布了165 篇原创文章 · 获赞 59 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43972437/article/details/103854809
今日推荐