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的更多相关文章

  1. ASCII、UNICODE、UTF

    在计算机中,一个字节对应8位,每位可以用0或1表示,因此一个字节可以表示256种情况. ascii 美国人用了一个字节中的后7位来表达他们常用的字符,最高位一直是0,这便是ascii码. 因此asci ...

  2. ascii、unicode、utf、gb等编码详解

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节".再后来,他们又做了一些可以处理这 ...

  3. 字符编码笔记:ASCII,Unicode和UTF-8

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理 ...

  4. ASCII、Unicode、GBK和UTF-8字符编码的区别联系(转载)

    ASCII.Unicode.GBK和UTF-8字符编码的区别联系 转载自:http://dengo.org/archives/901 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同 ...

  5. 字节的高低位知识,Ascii,GB2312,UNICODE等编码的关系与来历

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理 ...

  6. 2.数码相框-编码(ASCII/GB2312/Unicode)介绍,并使LCD显示汉字字符(2)

    在上章-学习了数码相框的框架分析(1)了 本章主要内容如下: 1)熟悉ASCII/GB2312/Unicode编码 2)写应用程序,使LCD显示汉字和字符 大家都知道,数据传输的是二进制,而字符和汉字 ...

  7. 编码 ASCII, GBK, Unicode+utf-8

    0. 1.参考 网页编码就是那点事 阮一峰 字符编码笔记:ASCII,Unicode 和 UTF-8 2.总结 美国 ASCII 码 发音: /ˈæski/ :128个字符,只占用了一个字节的后面7位 ...

  8. Unicode和UTF的关系

    目录结构: contents structure [+] 什么是USC UCS的编码方式 Unicode的来源 为什么需要Unicode Unicode的方式 Unicode和UTF UTF和Unic ...

  9. Unicode、UTF-8 和 ISO8859-1

    Unicode.UTF-8 和 ISO8859-1到底有什么区别 1.本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文" ...

  10. 关于字符编码:ascii、unicode与utf-8

    转自:https://foofish.net/unicode_utf-8.html 阮一峰老师对普及计算机基础技术功不可没,但毕竟老师不是神,因此也避免不了对某些概念有一些错误的理解,<字符编码 ...

随机推荐

  1. WebClient 支持 gzip, deflate

    低调偷偷的下别人数据 发现下出来乱码- 用F12看看请求,原来人家是用了gzip压缩的- 试着自己加个Heading wc.Headers.Add("Accept-Encoding" ...

  2. RN错误随笔 - Unable to resolve module 'AccessibilityInfo'

    错误信息:.React Native 运行报错:Unable to resolve module 'AccessibilityInfo' 可以看到在 异常的返回的JSON 结构中给出了推荐的解决方法 ...

  3. sed 简单修改配置文件ip地址

    sed -i 's/old ip/new ip/g' file.txt

  4. Python的_文件操作

    打开文件:file_obj=open("文件路径","模式",“编码”’) 其中模式有: r,以只读方式打开文件(默认) w,打开一个文件只用于写入(不存在则创 ...

  5. mysql数据库授权

    mysql数据库授权所有人 grant all privileges on *.* to 'root'@'%' identified by 'password'; flush privileges; ...

  6. mysql-数据库管理安装

    第一节 数据库管理系统 相关网址:www.db-engines.com mysql站点:www.mysql.com mariadb.org   mariadb官方站点 数据库分类: 关系型数据库: o ...

  7. Codeforces 356D Bacterial Melee dp

    Bacterial Melee 我们发现所有合法串都是原序列的某个子序列(这个子序列相邻元素相等) 的扩展, 比如子序列为abc, 那么aabbbc, abbbcc 等都是合法串. 所以我们只需要dp ...

  8. xml方式将dataset导出excel

    using System;using System.Collections;using System.Collections.Generic;using System.Data;using Syste ...

  9. Linux基础学习(一)__后台运行Python文件

    Linux 后台运行Python脚本 1.安装Python:(python 3.5.4) 2.安装Python依赖包: 2.1 处理Python更新后yum无法正常使用的问题 (错误信息: -bash ...

  10. fetch的总结

    && ) { && ) { }); });