美文网首页
谈谈编码

谈谈编码

作者: 铜雀春深锁不住 | 来源:发表于2017-08-03 10:27 被阅读0次

1.ASCII 码

  ascii用来在计算机中表示  数字  英文字符 和 控制符号,ascii码共有128个元素

   这128个元素用一个字节表示(一个字节8bit)

  因为2的7次方是128,所有只用1个字节当中的后七位就可以表示这128个元素,其中最高位一   直是0.

ascii

如果利用一个字节(byte)的8位,也只能对应256(0-255)个要表示的对象,但是256对于人类要表示的符合完全不够,所以我们不能停留在byte这个数据结构上,我们要一个新的数据结构来解决这个问题,比如char

char的大小可以是两个字节

但是计算机碰到char ,如何去解析他要表示的字符,那么我们就需要事先规定char到byte的编码方式,例如uft-8,uft-16,编码方式描述的是byte到char的转化规则。根据这个规则计算机去识别char到底表示的是什么字符。

例如uft-16统一用两个字节表示一个字符(定长)

例如uft-8用1到6个字节表示一个字符(变长)

用UTF-16表示"汉"

假如用UTF-16表示的话就是0110110001001001(共16bit,两个字节).程序解析的时候知道是UTF-16就把两个字节当成一个单元来解析.这个很简单.

用UTF-8表示"汉"

用UTF-8就有复杂点.因为此时程序是把一个字节一个字节的来读取,然后再根据字节中开头的bit标志来识别是该把1个还是两个或三个字节做为一个单元来处理.

0xxxxxxx,如果是这样的01串,也就是以0开头后面是啥就不用管了XX代表任意bit.就表示把一个字节做为一个单元.就跟ASCII完全一样.

110xxxxx10xxxxxx.如果是这样的格式,则把两个字节当一个单元

1110xxxx 10xxxxxx 10xxxxxx如果是这种格式则是三个字节当一个单元.

这是约定的规则.你用UTF-8来表示时必须遵守这样的规则.我们知道UTF-16不需要用啥字符来做标志,所以两字节也就是2的16次能表示65536个字符.

而UTF-8由于里面有额外的标志信息,所有一个字节只能表示2的7次方128个字符,两个字节只能表示2的11次方2048个字符.而三个字节能表示2的16次方,65536个字符.

由于"汉"的编码27721大于2048了所有两个字节还不够,只能用三个字节来表示.


但是在java 中 char是两个字节,因为java采用unicode

UTF-32、UTF-16 和 UTF-8 是具体的实现方案。Unicode的实现方式不同于编码方式。一个字符的Unicode编码是确定的。但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同。Unicode的实现方式称为Unicode转换格式(Unicode Transformation Format,简称为UTF)。


相关文章

  • 谈谈编码

    1.ASCII 码 ascii用来在计算机中表示 数字 英文字符 和 控制符号,ascii码共有128个元素 ...

  • 谈谈字符编码

    1. 写在前面的话 很多初级甚至有丰富开发经验的开发者都可能会遇到乱码的问题,对深入理解字符编码的人来说,问题很容...

  • 谈谈字符编码

    一直觉得:一个合格的程序员必须要了解清楚编码。 程序员的工作中很频繁的一个场景是:啊啊,又(中文)乱码了,怎么弄,...

  • [114]序列化探讨

    关于编码和解码 在谈写序列化与反序列之前,我们先谈谈编码和解码。从wikipidea上查看编码解码的定义如下:[编...

  • 谈谈编码与规范

    一提到编码风格时,往往也会引起腥风血雨 比如: JavaScript 语句后面应该加分号吗?缩进应该用 Tab、四...

  • 任务13

    1. 说一说你平时写代码遵守的编码规范结合我自身有限的编码经验,谈谈我目前遵守的编码规范:(1)尽量选取语义化的标...

  • 谈谈Base64编码

    Base64----将8位的非英语字符转化为7位的ASCII字符。 Base64,选出64个字符----小写字母a...

  • iOS面试题

    1. 语言特性 谈谈你对KVC的理解(Key-Value Coding)顾名思义,就是键值编码。可以不通过gett...

  • 如何上传序列(Nucleotide)至Genbank

    序列上传是文章发表前的重要步骤,就个人经验谈谈几个上传Genbank数据的经验; 1. 编码基因CDS 需要将序列...

  • 大西安专题1:长安十二时辰8

    接第7回所述内容,谈谈《长安十二时辰》的黑科技,那就是望楼的信息传递系统,亦即“望楼”与编码技术的关系。 除了鼓声...

网友评论

      本文标题:谈谈编码

      本文链接:https://www.haomeiwen.com/subject/kygulxtx.html