最早的计算机在设计时采用 8 个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是 255(二进制11111111=十进制 255),如果要表示更大的整数,就必须用更多的字
节。

由于计算机是美国人发明的,因此,最早只有 127 个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII 编码,比如大写字母 A 的编码是 65,小写字母 z 的编码是 122。但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和 ASCII 编码冲突,所以,中国制定了 GB2312 编码,用来把中文编进去.

你可以想得到的是,全世界有上百种语言,日本把日文编到 Shift_JIS里,韩国把韩文编到 Euc-kr 里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。因此, Unicode 应运而生。 Unicode 把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

现在,捋一捋 ASCII 编码和 Unicode 编码的区别: ASCII 编码是 1 个字节,而 Unicode 编码通常是 2 个字节。你可以猜测,如果把 ASCII 编码的 A 用 Unicode 编码,只需要在前面补0 就可以,因此, A 的 Unicode 编码是 00000000 01000001。

新的问题又出现了:如果统一成 Unicode 编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用 Unicode 编码比 ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。所以,本着节约的精神,又出现了把 Unicode 编码转化为“可变长编码”的 UTF-8 编码。 UTF-8 编码把一个 Unicode 字符根据不同的数字大小编码成 1-6 个字节,常用的英文字母被编码成 1 个字节,汉字通常是 3 个字节,只有很生僻的字符才会被编码成 4-6 个字节。

搞清楚了 ASCII、 Unicode 和 UTF-8 的关系,我们就可以总结一下现在计算机系统通用的字符编码工作方式:在计算机内存中,统一使用 Unicode 编码,当需要保存到硬盘或者需要传输的时候,就转换为 UTF-8 编码。

用记事本编辑的时候,从文件读取的 UTF-8 字符被转换为 Unicode 字符到内存里,编辑完成后,保存的时候再把 Unicode 转换为 UTF-8 保存到文件:

字符编码ASCII ,Unicode ,UTF-8相关推荐

  1. 字符编码:ASCII,Unicode(UTF-8)

    1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte). ...

  2. 编程通用知识 字符编码(ascii,unicode,utf-8)

    ascii,unicode,utf-x都是文字和数字的映射, 因为计算机只能存储数字. ascii 1.早起用8位二进制来编码英文(最前面以为是0,实际只用了7位),既产生了128个元素的ascii码 ...

  3. 字符编码 ASCII,Unicode和UTF-8的关系

    转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143166410626 ...

  4. 字符编码ASCII、Unicode 、UTF-8 及实例汉字与Unicode码的相互转化

    字符编码ASCII.Unicode .UTF-8 及实例汉字与Unicode码的相互转化 ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值.每一个二进制位(bit)有0和1两种状态, ...

  5. Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介、案例应用(python中的编码格式及常见编码问题详解)之详细攻略

    Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介.案例应用(python中的编码格式及常见编码问题详解)之详细攻略 目录 符串编码(ASCII编码/GB ...

  6. 计算机字符编码——ASCII码和常用编码

    计算机字符编码--ASCII码和常用编码 ASCII码 基本介绍 上个世纪60年代, 美国制定了一套字符编码, 对英语字符与二进制位之间的关系, 做了统一规定,这被称为ASCII码. ASCII码一共 ...

  7. 记事本字符编码没有Unicode选项

    记事本字符编码没有Unicode选项 Windows 10更新1903版本后,记事本的几种编码模式改了名称: 旧版的"Unicode"相当于新版的"UTF-16 LE&q ...

  8. 深入理解-字符编码ASCII,GB2312,GBK,Unicode,UTF-8

    字符编码 简介 起初再考虑写不写这篇文章,感觉这篇文章比较枯燥乏味,而且自己感觉也没理解的太透彻,就把理解的记录下来,所以这是纪念版的 前方高能,非战斗人员请迅速撤离,我要开始装逼了. Go hard ...

  9. 前端需要搞懂的字符编码ASCII、Unicode、UTF8、UTF16等

    字符集和字符编码 字符集就是字符的集合,如常见的 ASCII字符集,GB2312字符集,Unicode字符集等.这些不同字符集之间最大的区别是所包含的字符数量的不同. 字符编码则代表字符集的实际编码规 ...

  10. 字符编码ASCII、ANSI、DBCS、MBCS、GB2312、GBK、GB18030、UTF-8、UTF-16、Unicode、emoji

    字符必须编码后才能被计算机处理.计算机使用的缺省编码方式就是计算机的内码. 内码是指操作系统内部的字符编码.早期操作系统的内码是与语言相关的.现在的Windows在系统内部支持Unicode,然后用代 ...

最新文章

  1. I2C总线学习(四)--读写过程
  2. .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示
  3. 实验吧逆向catalyst-system——WP
  4. 2020考研备考:中国大学最顶尖学科名单——数学
  5. 計算機二級-java10
  6. python集合补集、差集、并集_python set集合运算(交集,并集,差集,对称差集)...
  7. dedecms安装kindeditor编辑器
  8. Oracle19c下载安装和配置教程
  9. 服务器安全,服务器密码遭篡改
  10. bzoj 3332 旧试题
  11. 创始人和VC疯狂撕逼,究竟所为何事?
  12. java poi pdf 导出
  13. 关于学生和老师关系的换位思考
  14. 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
  15. 迅雷thunder://地址与普通url地址转换
  16. 磁条卡芯片卡读写器|写卡器MCR200的安装与操作说明
  17. C语言六位数字钟程序,单片机制作的6位数字钟
  18. 百度云虚拟主机详细使用流程
  19. 技术总监灵魂一问:精通那么多技术,为何还是做不好一个项目?
  20. 【LOJ】#2289. 「THUWC 2017」在美妙的数学王国中畅游

热门文章

  1. 大表join大表_阿里开发规范:超过三张表,禁止join骚操作
  2. java异常继承哪个类_java异常继承何类,运行时异常与一般异常的区别
  3. php手机i选择图片多选,ios 相册图片多选 带预览功能
  4. java 10什么意思_详解:Java 10的10个新特性
  5. 革命性新特性 | 单一应用跨多Kubernetes集群的部署与管理 1
  6. 挖坑:handoop2.6 开启kerberos(全流程学习记录)
  7. koa使用koa-passport实现路由进入前登录验证
  8. SSH中各个框架的作用以及Spring AOP,IOC,DI详解
  9. hdu 2412(树形dp)
  10. 4月第三周网络安全报告:发现放马站点域名437个