python ascii转16进制,python ascii编码

  python ascii转16进制,python ascii编码

  字符编码入门计算机只知道二进制,生活中的数字要想被计算机理解必须转换成二进制。十进制到二进制的转换只能解决计算机能理解数字的问题,那么文字怎么能被计算机理解呢?

  所以我们选择了曲线救国的方式。既然数字可以转换成十进制,那么我们只需要找到一种方法将文字转换成数字,这样文字就可以用二进制表示了?

  但是单词应该怎么转换成数字呢?这是强迫转换。简单粗暴。我们自己约定了一个表,这个表对应文字和数字,这个表相当于翻译。我们可以将一个数字与对应的表格进行比较,找到对应的单词,反之亦然。

  ASCII码这个表是计算机显示各种字符和符号的基石。

  ASCII(美国信息交换标准码)是一种基于拉丁字母的计算机编码系统,主要用于显示现代英语和其他西欧语言。它是目前最常见的单字节编码系统,相当于国际标准ISO/IEC 646。

  由于计算机是美国人发明的,最早只有127个字母被编码进计算机,即大小写英文字母、数字和一些符号。这个编码表称为ASCII编码。比如大写字母A的编码是65,小写字母Z的编码是122。最后128个称为扩展ASCII码。

  现在,我们知道上面的字母数字表已经存在很久了。然后根据现有的一些十进制系统,我们可以转换成二进制编码的字符串。

  例如

  空格对应的数字是0,翻译成二进制的0(注意字符 0 和整数0是不一样的)。

  一个勾对应一个数251,二进制翻译成11111011。

  句子的重要性和必要性;

  上次在网上看到一个新闻,讲的是一个贼喊着“我一定是海贼王!”

  因为这些字符串有长有短,写在一起,我们很难区分每个字符的起始和结束位置,所以聪明的人类想出了一个解决办法。由于总共只有255个字符,最长的也只有1111111111个八位。为什么不干脆把二进制全部转换成八位,把不足部分换成0。

  这样刚好两个空格写成0000000000000000011111011加复选标记。阅读时,只要每次读八个字符,就可以知道每个字符的二进制值。

  这里每一位0或1所占的空间单位是bit,是计算机中最小的表示单位。

  每8个bit组成一个字节,这是计算机中最小的存储单位(毕竟你是没有办法存储半个字符的)orz

  Bit,计算机最小的表示单位是8bit=1bytes,最小的存储单位,1bytes的缩写是1 B1 kb=1024 B1 bb=1024 kb 1gb=1024 G1 bb=1024 tb1 EB=1024 PB1 zb=1024 EB 1 Yb=1024 zb1 bb=1024 Yb。

  解决了GB2312 GBK的英语问题。怎么才能用中文显示出来?美国人设计ASSCII代码的时候,没有想到中国人有一天会用上电脑,所以根本没有考虑中文。20世纪80年代,当计算机进入中国时,它们难倒了砌砖工人。该死的,ASSCII里只能存256个字符,我经常用上千个汉字。我该怎么玩?当我们勒紧裤腰带还了苏联的贷款,我们都活了下来。这件小事对我们来说并不难。由于美帝的ASCII不支持中文,我们只要自己做编码表就可以了,于是我们设计了GB2312编码表,看起来是这样的。6763个汉字共存。

  这个表比较大,像上图一样有72个文本区,无法用一个字节表示一个汉字(因为一个字节只能有256个字符变体,你现在只能有2个字节,2 * * 16=65535个变体)。

  有了gb2312,我们就可以快乐地写中文了。

  但是我们写的时候会出现中英文混杂的情况,比如“我是小猿圈,英文名是Apeland。”你会怎么做?这就要求你同时支持gb2312中的英文,但不能是两个字节代表一个英文字母。ASCII里人家用一个字符,你用两个。2mb的英文文档只要改变编码,马上就变成4mb了。太尴尬了。中国人有钱也做不到这样。所以中国砖家用神奇的手段兼容ASSCII,就是中文用两个字节,英文直接用ASCII。你是怎么做到的?

  怎么区分连在一起的两个字节代表两个英文字母还是一个汉字?中国太聪明了,他决定,如果2个字节连在一起,且每个字节的第1位(也就是相当于128的那个2进制位)如果是1,就代表这是个中文,这个首位是128的字节被称为高字节。 也就是2个高字节连在一起,必然就是一个中文。。你为什么这么肯定?因为0-127已经代表了大部分英文字符,128-255是ASCII的扩展表,代表了非常特殊的字符,一般没什么用。所以中国人就直接用了。

  自1980年gb2312发布以来,一直使用中文,没有任何问题。随着个人电脑进入千家万户,一些人发现他们的名字不能被打印出来,因为他们太陌生了。

  于是在1995年,砖家们对gb2312进行了升级,增加了更多的字符,包括藏语、维吾尔语、日语、韩语和蒙古语。国家统一亚洲的野心,从这些基础著作中可见一斑。这个代码叫做GBK。直到现在,我们的windows电脑中文版的代码是GBK。

  编码混战时代,中国人要自己编代码,世界上其他非英语国家要用电脑,所以都自己编了代码。可想而知,世界上有上百种语言,日语编Shift_JIS,韩语编Euc-kr

  如果有国家标准,必然会有冲突,结果多语种文本中就会出现乱码。之前,你玩了一个日本游戏,把它加载到你的电脑上,它显示乱码。需要安装语言包,才能正常显示文字

  这种混乱极大地阻碍了不同国家的信息传递,于是联合国出面,誓要解决这种混乱局面。

  因此,Unicode应运而生。Unicode把所有语言统一成一套代码,这样就不会出现乱码问题。Unicode 2-4字节已经记录了136,690个字符,并且还在扩展中…

  Unicode标准也在发展中,但最常见的是用两个字节来表示一个字符(如果要用很远的字符,就需要4字节)。现代操作系统和大多数编程语言都直接支持Unicode

  Unicode有两个特征:

  它支持世界上所有的语言都可以和各种语言的代码自由转换,也就是说,很容易把你的gbk编码的单词转换成unicode。为什么unicode可以和其他语言转换?因为和所有语言都有对应关系,这样做的好处是可以很容易的把用gbk或者其他代码编写的软件转换成unicode代码,有利于unicode的推广。下图显示了unicode和中文编码之间的对应关系。

  UTF-8的新问题又出现了:如果统一成Unicode代码,乱码问题从此消失。但是,如果你写的文字基本上全是英文,用Unicode编码比用ASCII编码需要多一倍的存储空间。因为电脑的内存比较大,字符串在内容中表达的时候也不是特别大,所以内容可以用unicode处理,但是在存储和网络传输的时候一般会有很多数据,所以翻倍是不能容忍的!

  为了解决存储和网络传输的问题,出现了unicode转换格式,学名UTF,即转换Unicode字符,这样在存储和网络传输的时候可以节省空间!

  UTF-8:用1、2、3、4字节代表所有字符;如果先用一个字符,如果不能满足,就加一个字节,最多4个字节。英语占1个字节,欧洲语言占2个,东亚占3个,其他和特殊字符占4个UTF-16:用2或4个字节表示所有字符;优选2字节,否则使用4字节。UTF-32:用4个字节表示所有字符;总结:UTF 是为unicode编码 设计 的一种 在存储 和传输时节省空间的编码方案。

  如果您要传输的文本包含大量英文字符,使用UTF-8编码可以节省空间:

  编码转换为py3,内存里的字符串是以unicode编码的。unicode的一个特点是,它与所有语言编码都有映射关系。所以,如果你的utf-8格式文件在windows电脑上无法查看,可以先把utf-8解码成unicode,再用unicode编码成gbk。

  注意你的pycharm IDE可以支持windows或Mac或Linux上的各种文件编码,所以即使是utf-8文件也可以在Windows下的pycharm中正常显示。

  Name= csdyc Name _ GBK=Name . encode( gbk )print( encoding format:,chardet . detect(Name _ gbk)[ encoding ], data:,Name _ gbk . decode( gbk ))Name _ utf _ 8=Name _ gbk . decode( gbk )。encode( utf-8 )print(name _ utf _ 8)输出

  编码:KOI8-R数据:b \ x5 \ xc5 \ xc1 \ xfa \ x7 \ x3 数据:csdycb \ xe5 \ xbc \ xa0 \ xe9 \ xbe \ x99 \ xe5 \ xad \ x90

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: