技术标签: python 编码 unicode ascii 计算机
字符是人们常用的一些记号,比如”1”, “汉”, “お”,”℃”等等,包括各种语系的语言和一些符号都可以被称为字符。
字节是计算机存储数据的存储单元,是一个8位的二进制数,所以最多只能表示256个数字(0-255)。
编码是大家对计算机如何使用字节来表示一个字符的约定,可分为ASCII编码,ANSI编码(本地化编码),UNICODE编码(国际化编码)三种。
最初的编码,由一个字节组成,因此只能表示256个字符,但只表示0-9,a-z,A-Z,和一些加减乘除百分号,够老美用了。
后来ISO国际标准组织以ASCII编码为基础,约定了ISO 8859-1编码,又称Latin1编码。(Mysql的默认存储编码)
如果只有ASCII编码的话,计算机岂不只能表示英文字母和数字还有几个加减乘除号,中文怎么办,阿拉伯文怎么办,日文怎么办?
由于一个字节只能表示255个数字,所以中国约定了GBK编码规则,约定用0x80-0xFF范围内的某两个字节来表示某一个中文字符。
日本约定了JIS编码规则,他们约定0x80-0xFF范围内的某两个字节来表示某个日文字符。
台湾约定了BIG5编码规则,约定0x80-0xFF范围内的某两个字节表示某个繁体中文字符。
所以我们拿到了一个ANSI字节串的时候,我们还必须知道这个字节串的编码,才能将这个字节串转换成相应国家的字符串。
字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。
字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。
它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:
①ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。
②UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
③Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。
符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
④UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。
⑤UTF-32编码中,世界上任何字符的存储都需要4个字节。
ANSI编码有很多种,但是都只是规定自己国家的语言,这时候出现了UNICODE编码,该编码类似于ANSI,使用多个字节表示一个字符,UNICODE编码把世界上各种主要语言都进行了编码,当然UNICDOE编码也出现了很多种编码方案,比如使用8个二进制位的UTF8以及使用16个二进制位的UTF16等等。
在py3里,只有 unicode编码格式 的字节串才能叫作str。
其他编码格式的统统都叫bytes,如:gbk,utf-8,gb2312…………
在py3中,==Unicode编码就像是一个枢纽==,例如gbk的格式要想转化成utf-8,那么必须先转化成Unicode,然后再从Unicode转化成utf-8。
在python3中可以利用import chardet来进行文件编码处理
rawdata =requests.get('http://www.google.cn/').read()
chardet.detect(rawdata)
chardet是一个python3自带的库,用于检测文本的编码方式,他会返回一个字典,格式是{==”encoding” : “xxx”, “confidence” :” xxx”==}但是注意它一般只能检测bytes类型的编码格式
2、数字会读取为小数 比如电话号码 130xxxxxxxx会读取为130xxxxxxxx.0这种数据会失真 需要特别处理。函数使用到的第三方包为xlrd 版本号为1.2.0 请不要安装过高的版本 过高的版本某些功能不支持。1、对于不同的编码可能出现乱码问题。根据下标和名字来选取。..._pycharm中xls_data只取后几行
西方史书上记载的每个世纪最强大的国家 公元前15世纪:埃及王国 公元前14世纪:埃及王国、赫梯王国(并列) 公元前13世纪:埃及王国、商王国(并列) 公元前12世纪:埃及王国 公元前11世纪:(空缺) 公元前10世纪:周王国 公元前9世纪:亚述帝国 公
正向代理:代理服务器做的是客户端的代理反向代理:代理服务器做的是服务器的代理代理服务先用社会生活中我们常见的场景解释一下代理:租房代理 or 中介很多有房人士想将自己闲置的房子出租,但是他们大部分都还有其它更赚钱的事情要忙,并且他们自己住的房子和闲置的房子也不在同一个地方。因此并不愿花时间接待并带领每一位想要看房子的租客到自己闲置的房子那里去看房,也不愿花时间对租客的各种问题做解答。于是就出现了租房代理或者中介,他们专门负责带领租客看房子、解答租客的问题,虽然租客的主要目标即住房服务是房主提供的_nginx反向代理的基本策略
python之面向对象介绍(三)1 封装的介绍1.1 封装原因1.2 封装分类2 封装属性2.1 封装属性的引入2.2 封装属性的方法2.3 封装属性后修改属性3 封装方法4 装饰器4.1 装饰器介绍4.2 装饰器修改属性或者方法4.3 装饰器删除属性或者方法4.4 综合练习4.5 利用property对属性进行查、改、删python之面向对象介绍(二)中,我们介绍常用的魔术方法,本节我们引入封..._class dog: def __int__(self,name,age): self.name = name self.age = age def
为什么80%的码农都做不了架构师?>>> ...
这个问题和curl无法访问https资源是类似的,现在curl可以访问https资源,但是使用pecl安装扩展的时候不行,更新下最新的这个证书就可以了这个问题就是证书不是最新的,把系统的证书换成最新的就可以了1.需要下载CA证书 文件地址是 wget http://curl.haxx.se/ca/cacert.pem2.把下载的文件放到这个位置 /etc/pki/tls/certs/..._cannot download "pecl/skywalking_agent" (connection to `ssl://pecl.php.net:4
《系统工程师实战培训》 -05-部署补丁管理服务器 -03-通过组策略(域)配置加域客户端补丁 自动更新 作者:学 无 止 境QQ交流群:454544014 在100-Admin01上安装“组策略”管理工具 创建完成后,右键打开刚才创建的WSUS策略,选择“编辑”打开【组策略管理编辑器】,在【组策略管理编辑器】的视图中, 展开【计算机配..._ad域控组策略设置普通用户系统补丁更新
点击上方“蓝字”,学习更多干货!上篇文章介绍了基本的握手电路,以及为了防止漏采样而设计的带输出“同步失败”信号的改进握手电路,这次我们介绍一下与”握手“相似但不同的处理单bit跨时钟域的..._握手 电路设计
panic&recoverpanic 能够改变程序的控制流,函数调用panic 时会立刻停止执行函数的其他代码,并在执行结束后在当前 Goroutine 中递归执行调用方的延迟函数调用 deferrecover 可以中止 panic 造成的程序崩溃。它是一个只能在 defer 中发挥作用的函数,在其他作用域中调用不会发挥任何作用panic 只会触发当前 Goroutine 的延迟函数调用;recover 只有在 defer 函数中调用才会生效;panic 允许在 defer 中嵌套多次_golang 递归panic
像struts2是以packetage方式来管理区分各个模块,springMVC基于注解的方式如何来区分?为控制器也加上请求映射信息UserControllerProductController应用 若要访问usercontroller中add方法 /user/add.do 若要访问productcontroller中add方法 /product/ad_springmvc 模块化开发
__metaclass__ = typeclass Fibs: def __init__(self): self.a = 0 self.b = 1 def next(self): self.a, self.b = self.b, self.a + self.b return self.a def __iter
Session在框架中开启Session,需要在config\middleware.php中输入如下初始化代码:\think\middleware\SessionInit::class 在控制器中,需要引入如下:use think\facade\Session验证码功能 tp中的验证码需要安装,命令如下:composer require topthink/think-captcha在控制器中引入:..._tp6实战