python 3字符编码
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
>>>
python 3字符编码的更多相关文章
- Python基础-字符编码与转码
***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...
- Python的字符编码
Python的字符编码 1. Python字符编码简介 1. 1 ASCII Python解释器在加载.py文件的代码时,会对内容进行编码,一般默认为ASCII码.ASCII(American St ...
- Python常用字符编码(转)
Python常用字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...
- Python常见字符编码间的转换
主要内容: 1.Unicode 和 UTF-8的爱恨纠葛 2.字符在硬盘上的存储 3.编码的转换 4.验证编码是否转换正确 5.Python bytes类型 前 ...
- Python 的字符编码
配置: Python 2.7 + Sublime Text 2 + OS X 10.10 本文意在理清各种编码的关系并以此解决 Python 中的编码问题. 1 编码基本概念 只有先了解字符表.编码字 ...
- 转:Python常见字符编码及其之间的转换
参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...
- Python遇到字符编码出问题的一个相对万能的办法
在使用Python做爬虫的过程中,经常遇到字符编码出问题的情况. UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' ...
- Python:字符编码详解
相关文章 Python中文编码问题:为何在控制台下输出中文会乱码及其原理 1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Informati ...
- Python入门笔记(14):Python的字符编码
一.字符编码中ASCII.Unicode和UTF-8的区别 点击阅读:http://www.cnblogs.com/kingstarspe/p/ASCII.html 再推荐一篇相关博文:http:// ...
随机推荐
- BugPhobia休息篇章:Beta阶段第IX次Scrum Meeting前奏
特别说明:此次Scrum Meeting不计入正式的Scrum Meeting,因此此次工作仅为第IX次Scrum Meeting的前奏,而笔者也首次采用休息篇章作为子命题 0x01 :Scrum ...
- 20135323符运锦----LINUX第二次实践:内核模块编译
Linux实践二--模块 一.知识点总结 ①Linux模块是一些可以作为独立程序来编译的函数和数据类型的集合.之所以提供模块机制,是因为Linux本身是一个单内核.单内核由于所有内容都集成在一起,效率 ...
- 集美大学1414-团队作业2:需求分析&原型设计分数发布
1.评分标准 检查项 分数 编号 调研文档或截图 1 1 软件需求分析说明书 2 2 NABCD 2 3 描述每个成员具体分工 1 4 原型设计 2 5 编码规范 1 6 推广视频 1 7 ...
- TCP报文格式详解
TCP报文是TCP层传输的数据单元,也叫报文段. 1.端口号:用来标识同一台计算机的不同的应用进程. 1)源端口:源端口和IP地址的作用是标识报文的返回地址. 2)目的端口:端口指明接收方计算机上的应 ...
- 『编程题全队』Beata阶段项目复审
小组的名字和链接 优点 缺点,bug 报告(部分包括建议) 最终名次 想不出队名 1. 界面简洁大方2. 有搜索功能 1. 已经完成的活动缺了点提示界面2. 似乎界面有一点点卡顿目标实现:基本实现找到 ...
- Oracle 导入导出报错的简单处理
这边出现报错: 简单查了下资料发现: https://blog.csdn.net/lichkui/article/details/5489708 在imp 的命令后面 增加buffer 即可 比如 i ...
- ubuntu默认壁纸位置
usr/share/backgrounds和usr/share/wallpapers
- python之tkinter使用-Grid(网格)布局管理器
# 使用tkinter编写登录窗口 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列 # stricky设置对齐方式,参数N/S/W/E分别表示上.下.左.右 ...
- jdk1.8 HashMap的keySet方法详解
我在看HashMap源码的时候有一个问题让我产生了兴趣,那就是HashMap的keySet方法,没有调用HashMap的有关数据的任何方法就能获取到map的所有的键,他是怎么做到的,然后我就通过模拟k ...
- BZOJ3732Network——kruskal重构树+倍增+LCA/最小生成树+倍增
题目描述 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 & ...