ASCII到Unicode到UTF-8
1、很久以前使用的是ASCII;只有一个字节,也就是2的8次方,可以表示256个不同状态,电脑最初起源于美国,够用了,刚开始只是使用了127位,后来后面的部分被他们用来表示一些横线字符之类的128-255的扩展字符集。
2、后来传入中国,中国汉字太多了,ASCII不够用,中国人就不承认扩展字符集了,而是使用组合的方式把大于127的两个编码字符连在一起也就是两个ASCII编码合起来表示一个汉字(GBK标准)。再后来中国又不够用了,就在规定不需要表示汉字的两个字符都是属于扩展字符集的,只要第一个字符是大于127的就行,就说明他是汉字(GB18030标准)。----所以一个汉字是两个英文字符那么大。
半角全角之分:127位及之前的是半角,之后的是全角。
3、后来像中国这样子的国家太多了,大家一人一个标准,所以需要进行统一了,那就是使用国际化标准组织(ISO)规范的unicode编码。Unicode使用两个字节来表示一个字符。就算是半角的那些英文们也是一样的,虽然他们只需要使用的低八位(把他们的高八位填零了)。
4、再后来,不幸的是unicode也超了,所以人家的解决办法是使用两个unicode编码来表示一个。
Eg:"\uD83D\uDE02\uD83D\uDE02\uD83D\uDE02".length() // 6
这个字符串表示的是三个”笑哭“(博客园打不出来)的表情,但是却是使用了六个unicode代码单元.
那么utf-8(每次传输的时候传8位) 和utf-16(每次传输的时候传16位)呢?
这个是编码规则,从unicode到utf-8以及utf-16并不是一一对应,而是需要用一定的规则进行转换。因为很多英文文件,他们的高八位几乎是0,那他们的文件凭空被扩大了一倍甚至更多,那不是很吃亏。一个字符现如今使用unicode来表示,他们需要的是一个unicode代码单元或者是一对代码单元,因此他们就需要使用两个字节或者是四个字节。而utf-8是每次传输的时候传输8位,他们是对unicode字符集进行再编码,编码之后的将一个unicode码位编码为1到4个字节。如果是英文就只需要一个字节,如果是辅助字符需要四个字节特别需要注意的是中文现在在utf-8中是需要3个字节(如下图)。而在utf-16中需要4个字节。目前国际上使用最广的是utf-8.

ASCII到Unicode到UTF-8的更多相关文章
- ASCII、UNICODE、UTF
在计算机中,一个字节对应8位,每位可以用0或1表示,因此一个字节可以表示256种情况. ascii 美国人用了一个字节中的后7位来表达他们常用的字符,最高位一直是0,这便是ascii码. 因此asci ...
- ascii、unicode、utf、gb等编码详解
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节".再后来,他们又做了一些可以处理这 ...
- 字符编码笔记:ASCII,Unicode和UTF-8
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理 ...
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系(转载)
ASCII.Unicode.GBK和UTF-8字符编码的区别联系 转载自:http://dengo.org/archives/901 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同 ...
- 字节的高低位知识,Ascii,GB2312,UNICODE等编码的关系与来历
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理 ...
- 2.数码相框-编码(ASCII/GB2312/Unicode)介绍,并使LCD显示汉字字符(2)
在上章-学习了数码相框的框架分析(1)了 本章主要内容如下: 1)熟悉ASCII/GB2312/Unicode编码 2)写应用程序,使LCD显示汉字和字符 大家都知道,数据传输的是二进制,而字符和汉字 ...
- 编码 ASCII, GBK, Unicode+utf-8
0. 1.参考 网页编码就是那点事 阮一峰 字符编码笔记:ASCII,Unicode 和 UTF-8 2.总结 美国 ASCII 码 发音: /ˈæski/ :128个字符,只占用了一个字节的后面7位 ...
- Unicode和UTF的关系
目录结构: contents structure [+] 什么是USC UCS的编码方式 Unicode的来源 为什么需要Unicode Unicode的方式 Unicode和UTF UTF和Unic ...
- Unicode、UTF-8 和 ISO8859-1
Unicode.UTF-8 和 ISO8859-1到底有什么区别 1.本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文" ...
- 关于字符编码:ascii、unicode与utf-8
转自:https://foofish.net/unicode_utf-8.html 阮一峰老师对普及计算机基础技术功不可没,但毕竟老师不是神,因此也避免不了对某些概念有一些错误的理解,<字符编码 ...
随机推荐
- Java基础知识➣序列化与反序列化(四)
概述 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信息和存储在对象中数据的类型. 将序列化对象写入文件之后,可以从文件 ...
- 选择结构switch
1.选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码.例如,在程序中使用数字1~7来表示星期一到 ...
- ab访问并发测试简要步骤
工具: 1)ab -n 总访问次数 -c 并发用户数 目标url 查询某一个工具是哪个软件包安装的 rpm -qf 2)loadrunner 可视化 3)webbench 制作指定大小页面: ...
- word/excel/cad中插入二维码
1.有需求为在word文档中插入二维码,寻访度娘后,大部分人推荐使用QRmaker制作. 2.找寻QRmaker,网上很多都是1.1版本,后来才知道这个版本有问题(对中文支持不好),偶然得到1.3的版 ...
- python_异常处理_断言
一.Python标准异常 常用异常 Exception 常规错误的基类 AttributeError 试图访问一个对象没有的属性 IOError 输入/ 输出异常,基本上是无法打开文件 ImportE ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第三集之磁盘分区】
磁盘分区的概念对接下来的自定义安装Linux具有重要作用.(可以直接先看第四集之Linux安装就能知道分区的重要性) ----------------------------------------- ...
- HDFS-HA高可用 | Yarn-HA
HDFS-HA HA(High Available),即高可用(7*24小时不中断服务) 单点故障即有一台机器挂了导致全部都挂了:HA就是解决单点故障,就是针对NameNode: 主Active:读写 ...
- 026 UI调试
读了这篇文档,感觉蛮好玩的.粘贴一下链接: http://www.cnblogs.com/Wayou/p/chrome-console-tips-and-tricks.html
- 15行Python 仿百度搜索引擎
开发工具:PyCharm 开发环境:python3.6 + flask + requests 开发流程: 1. 启动一个web服务 from flask import Flask app = Flas ...
- 《第六周java学习笔记》
教材知识点总结 Java 把 String 类定义为 final 类. new 运算符首先分配内存空间并在内存空间中放入字符序列,然后计算出引用.(new String(char a[],int st ...