ASCII

在过去的计算中,ASCII码被用来表示字符。英语只有26个字母和其他一些特殊字符和符号。

下表提供了ASCII字符及其相应的十进制和十六进制值。

可以从上面的表中推断,在十进制数系统中,ASCII值可以表示为0到127。

让我们看一下0和127的二进制表示形式,在8位字节中。

0表示为

127表示为

可以从上面的二进制表示中推断出,0到127的十进制值可以用7位表示,而不是8位。

这就是事情开始变得混乱的地方。

人们想出了不同的方法来使用剩下的8位,它代表了从128到255的十进制值,并且开始发生碰撞。

例如使用的十进制值182在越南代表越南字母ờ而相同的值182被印第安人代表印地语字母घ。

如果电子邮件写的一个印度包含字母表घ如果是阅读一个人在越南似乎ờ。不打算出现的方法。

这就是Unicode字符集来保存这一天的地方。

Unicode和代码点

Unicode字符集将世界上的每个字符映射到一个唯一的数字。这确保了不同语言的字母表之间没有冲突。这些数字是平台无关的。

这些独特的数字被称为unicode术语中的代码点。

让我们看看它们是如何被引用的。

拉丁字符ṍ被称为使用代码点

U+1E4D
U +表示unicode和1 e4d十六进制值分配给角色ṍ
英文字母A被表示为U+0041。
请访问http://www.unicode.org/charts/了解代码点对所有语言和世界的字母
utf - 8编码
现在我们知道了什么是unicode,以及如何将世界上的每个字母表分配给一个惟一的代码点,我们需要一种方法来表示计算机内存中的这些代码点。这就是角色编码进入画面的地方。一个这样的编码方案是UTF-8。 UTF-8编码是一种可变大小的编码方案,用于表示内存中的unicode代码点。可变大小的编码意味着代码点使用1、2、3或4字节表示,这取决于它们的大小。 utf - 8 1字节编码
一个1字节的编码是通过在第一个比特中出现0来确定的。

英文字母A有unicode码点U+0041。它的二进制表示是1000001。 A用UTF-8编码表示。

红色0位表示使用1字节编码,其余的位表示代码点。 utf - 8 2字节编码
带有代码点U+00F1的拉丁字母n有二进制值11110001。这个值大于使用1字节编码格式表示的最大值,因此这个字母表将使用UTF-8 2字节编码表示。 2字节编码是由位序列110在第1位和第10位在第2位中出现。

unicode代码点U+00F1的二进制值为1111 0001。将这些位填充到2字节编码格式中,我们得到了如下所示的UTF-8 2字节编码表示。
填充是先从最不重要的代码点开始,然后将其映射到第二个字节中最不重要的部分。

蓝色11110001中的二进制数字表示代码点U+00F1的二进制值,红色的是2字节编码标识符。黑颜色的零被用来填充字节中的空比特。 utf - 8 3字节编码
ṍ的拉丁字符的代码点U + 1 e4d表示使用3字节编码是大于最大值,可以使用2字节编码表示。 一个3字节的编码是通过在第一个字节中出现的位序列1110和第二个和第三个字节中的10来标识的。

十六进制代码点0x1E4D的二进制值是1111001001101。填充这些位在上面的编码格式给我们的utf - 8 3字节编码表示ṍ显示如下。
开始填充的时候,最不重要的代码点映射到第三个字节中最不重要的部分。

红色位表示3字节编码,黑色表示填充位,蓝色表示代码点。 utf - 8 4字节编码
的Emoji

Unicode字符集和UTF-8, UTF-16, UTF-32编码的更多相关文章

  1. 转:Unicode字符集和多字节字符集关系

    原文地址: http://my.oschina.net/alphajay/blog/5691 unicode.ucs-2.ucs-4.utf-16.utf-32.utf-8 http://stallm ...

  2. Unicode字符集和多字节字符集关系

      在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset). 在最初的时候,Internet上只有一种字符集—— ...

  3. Unicode字符集和编码方式

    通常将一个标准中能够表示的所有字符的集合称为字符集,比如ISO/Unicode所定义的字符集为Unicode.在Unicode中,每个字符占据一个码位/Unicode 编号(用4位十六进制数表示,Co ...

  4. 有关UNICODE、ANSI字符集和相关字符串操作

    Q UNICODE字符串如何显示 A 如果程序定义了_UNICODE宏直接用 WCHAR *str=L"unicodestring"; TextOut(0,0,str); 否则就需 ...

  5. 字符集研究之多字节字符集和unicode字符集

    作者:朱金灿 来源:http://blog.csdn.net/clever101 本文简介计算机中两大字符集:多字节字符集和unicode字符集的出现及关系. 首先我们须要明确的是计算机是怎样找到字符 ...

  6. Unicode 字符和UTF编码的理解

    Unicode 编码的由来 我们都知道,计算机的内部全部是由二进制数字0, 1 组成的, 那么计算机就没有办法保存我们的文字, 这怎么行呢? 于是美国人就想了一个办法(计算机是由美国人发明的),也把文 ...

  7. Unicode字符以16进制表示

    int(x [,base ])         将x转换为一个整数 long(x [,base ])        将x转换为一个长整数 float(x )               将x转换到一个 ...

  8. 转载一篇关于unicode字符编码的文章

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

  9. 字符集和字符编码(Charset & Encoding)

    字符集和字符编码(Charset & Encoding)[转] 1.基础知识 计算机中储存的信息都是用二进制数表示的:而我们在屏幕上看到的英文.汉字等字符是二进制数转换之后的结果.通俗的说,按 ...

随机推荐

  1. ThreadPoolExecutor线程池中线程不能超过核心线程数量的问题

    int arg1=2;//核心线程 int arg2=40;//最大线程数量 int arg3=100;//空余保留时间 ThreadPoolExecutor pool=new ThreadPoolE ...

  2. HDU 1596 最短路变形

    这道题怎么都是TLE,报警了,先放在这 http://acm.hdu.edu.cn/showproblem.php?pid=1596 #include <iostream> #includ ...

  3. 匿名内部类中关于new Runnable()的使用

    匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写. 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 1.继承一个父类的匿名内部类实现 ...

  4. LintCode2016年8月8日算法比赛----中序遍历和后序遍历构造二叉树

    中序遍历和后序遍历构造二叉树 题目描述 根据中序遍历和后序遍历构造二叉树 注意事项 你可以假设树中不存在相同数值的节点 样例 给出树的中序遍历: [1,2,3] 和后序遍历: [1,3,2] 返回如下 ...

  5. IPtables中SNAT和MASQUERADE的区别

    问题 iptables中snat和MASQUERADE的区别 解决方案 iptables中可以灵活的做各种网络地址转换(NAT) 网络地址转换主要有两种:snat和DNAT snat是source n ...

  6. Oracle 截取指定长度的字符

    去掉回车,换行符号,截取指定长度的字符 具体代码示例: --Function --去掉前后空格,截取字符,字符长度为P_Length create or replace function get_St ...

  7. Word 最后一页无法删除-解决办法

    Word 最后一页无法删除-解决办法 制服 word 最后一页无法删除 今天在做一个简历的时候,编辑 word 文档的时候,最后一页空白页怎么也删不掉,百度了很多方法之后,只有一个可行,记录一下. 1 ...

  8. 图片裁剪(基于RxPaparazzo)

    图片裁剪(基于RxPaparazzo) 前言:基于RxPaparazzo的图片裁剪,图片旋转.比例放大|缩小. 效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及 ...

  9. spring boot(4)-html和templates

     静态页面 spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下 /static /public /resources ...

  10. INFORMATICA 开发规范

    目    录 Informatica开发规范.... 1 目    录.... 2 1        编写目的.... 4 2        ETL研发责任人界定.... 4 3        ETL ...