python 3字符编码

官方链接:http://legacy.python.org/dev/peps/pep-0263/

在Python2中默认是ascii编码,Python3是utf-8编码

在python 的源代码文件中经常会看到:

# -*- coding: latin-1 -*-

这句话要写在文件的第一行或者第二行才有效果
这句话是声明Python源文件的编码方式。这个编码信息会在Python 解释器去解释这个文件时用到,使用这种编码方式去解释这个文件
因为所有文本,图片,声音,视频保存在磁盘中都必须是二进制的数据,对于文本,需要先转化为二进制然后才能保存在磁盘中,所以就出现了编码,
廖雪峰字符编码博客链接: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819196283586a37629844456ca7e5a7faa9b94ee8000
关于unicode 编码,unicode编码 为了解决各国文字使用不同的编码造成的问题,出现了unicode,一个字符用两个字节表示
但是Unicode 在存储和传输的过程中,如果一个文件都是ascii 编码,用unicode 存储或传输,会造成很大的资源浪费。所以出现了utf-8 ,utf-16
utf-8 是变长编码,对于英文用一个字节表示,汉字用3个字节表示。避免了浪费。 在现代计算机的内存中普遍用 Unicode编码。
在python 中,文本类型统一用str 类型表示,二进制数据用bytes 类型表示。
>>> a='中文'
>>> type(a)
<class 'str'>
>>> b=bytes(a,encoding='utf-8')
>>> b
b'\xe4\xb8\xad\xe6\x96\x87'
>>> type(b)
<class 'bytes'>
>>>
以上的代码都在Python 的内存中,可以看到将a 转换为二进制数据,占了6个字节,  在计算机中为了方便显示,通常用16进制来表示2进制数据
因为一个16进制位可以用4个二进制位来表示。
e4实际上一个字节大小,e 1110 4 0100 e4 用二进制就是11100100
>>> c=bytes(a,encoding='gbk')
>>> c
b'\xd6\xd0\xce\xc4'
>>>
当用gbk 编码去转换为二进制的时候,就成了4个字节,在gbk 中,一个中文字符用2个字节来表示

一般在一个字符前面加u  表示是unicode 字符,  0x是十六进制数,0x 是八进制数。0b 是二进制数
用内置函数bin() oct() hex() 可以进行各进制的转换
>>> d=0xE4
>>> bin(d)
'0b11100100'
>>> d=0b11100100
>>> hex(d)
'0xe4'
>>>
>>> chr(65)
'A'>>> ord('A')
65
>>>

最新文章

  1. Oracle 中的sql函数以及分页
  2. 物联网(莹石云)WIFI一键配置原理分析(zz)
  3. Ubuntu16.04 安装配置Caffe
  4. gvim的菜单乱码解决方法
  5. jquery 操作iframe的几种方法总结
  6. 文件控制列表命令setfacl和getfacl的使用
  7. FPGA系统中DRAM,SRAM,SDRAM,FLASH 区别(转)
  8. Groovy中那些神奇注解之ToString
  9. MYSQL设计优化
  10. QTP小应用一则
  11. Java 内存架构
  12. 两个byte[]拼接
  13. 手动写一个Servlet
  14. HTML canvas绘制椭圆
  15. Leetcode刷题C#版之 Length of Last Word
  16. 开源纯C#工控网关+组态软件(九)定制Visual Studio
  17. YII2 console中引用其他模块(子项目)的model时出现model找不到命名空间的问题解决
  18. 常见图片格式PNG,JPEG,BMP,GIF区别总结
  19. linux系统mysql主从配置
  20. VS2017 新建win32控制台应用

热门文章

  1. Linux内核分析 读书笔记 (第四章)
  2. Fake NP CodeForces - 805A (思维)
  3. 去掉ambiguous expansion of macro警告
  4. Ajax的使用~~~整理
  5. VirtualBox 导入虚拟机时的注意事项 VDI 与VMDK
  6. cmd 安装mysql
  7. hadoop集群故障排除
  8. AT2364 Colorful Balls
  9. BZOJ2821 作诗(分块)
  10. ssm 整合 redis(进阶教程)