python 字符编码及转码

python 默认编码
  • python 2.X 默认的字符编码是ASCII, 默认的文件编码也是ASCII
  • python 3.X 默认的字符编码是unicode,默认的文件编码也是unicode
  • 注意:unicode和utf-8之间可以不需要转换,可以直接互相答应,GBK如果需要和utf-8之间进行转换一定要通过unicode

首先说说python中二进制,八进制,十进制,十六进制之间的转换

--------------------------------------------------------------
# 十进制
print(100)  #结果:100
--------------------------------------------------------------
# 十进制转二进
print(bin(100))
# 结果:0b1100100  0b表示二进制  1100100表示二进制的100
--------------------------------------------------------------
# 十进制转八进制
print(oct(100))
# 结果:0o144  0o表示八进制  144表示八进制的100
--------------------------------------------------------------
# 十进制转16进制
print(hex(100))
# 结果:0x64  0x表示十六进制  64表示16进制的100
--------------------------------------------------------------

ASCII: 占一个字节,英文字母及数字,基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,通用的单字符编码系统
Unicode(万国码): 两个字节,计算机上使用的字符编码
UTP-8(可变长的编码): 对Unicode编码的进行了压缩和优化

python3.x中,默认内存为Unicode编码
  • 字符串转字节:用encode,指定'utf-8'字符集
  • 字节码转字符串: 用decode,指定'utf-8'字符集

注意:当英文转成字节码时,b''后面还是英文,当中文转成字节码时,b''后面显示十六进制的字节码。注:encode为加密,decode为解密,使用哪种字符集加密就用哪种字符集解密
基于: UTF-8

a = 'Miss'
a = a.encode('utf-8')
print(a)  # 结果:b'Miss'
b = '想'
b = b.encode('utf-8')
print(b)  # 结果:b'\xe6\x83\xb3'
b = b.decode('utf-8')
print(b) # 结果:'想'

基于:GBK

a = 'Miss'
a = a.encode('GBK')
print(a)  # 结果:b'Miss'
b = '想'
b = b.encode('GBK')
print(b)  # 结果:b'\xcf\xeb'
b = b.decode('GBK')
print(b) # 结果:'想'

Python中字符编码及转码的更多相关文章

  1. Python基础-字符编码与转码

    ***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...

  2. python中字符编码及unicode和utf-8区别

    ascii和unicode是字符集,utf-8是编码集 字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point) 编码规则:将「码位」转换为字节序列的规则(编码/ ...

  3. python的str,unicode对象的encode和decode方法, Python中字符编码的总结和对比bytes和str

    python_2.x_unicode_to_str.py a = u"中文字符"; a.encode("GBK"); #打印: '\xd6\xd0\xce\xc ...

  4. python_47_Python2中字符编码与转码

    #python3默认是Unicode,Unicode是万国码,不管中文字符还是英文,所有的每个字符都占2个字节空间,16位 #python2默认是ascii码 #ascii码不能存中文,一个英文只能占 ...

  5. python(字符编码与转码)

    一.字符编码演变史 二进制(0 1) """ 算机中的所有数据,不论是文字.图片.视频.还是音频文件,本质上最终都是按照类似 01010101 的二进制存储的,再说简单点 ...

  6. python之字符编码与转码

    说起python编码,真是句句心酸,今天终于是,终于梳理清楚了,下面我们就来一起揭开py编码的真相吧! 一,什么是编码? 其实基本概念很简单.我们都知道消息,那么消息就是人类所能理解的,简单易懂的存在 ...

  7. python_48_Python3中字符编码与转码

    python3默认是Unicode,不用声明# -*- coding:utf-8 -*-,如果声明则是utf-8 unicode='你好' print('utf-8:',unicode.encode( ...

  8. Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数

    1.        集合 1.1      特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...

  9. 【python】-- 字符串、字符编码与转码

    字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可:访问子字符串,可以使用方括号来截取字符串: var1 ...

随机推荐

  1. Linux下安装jupyter

    又是美好的一天     开开心心写代码 1. 安装ipython, jupyter pip install ipython pip install jupyter 2. 生成配置文件[root@50e ...

  2. java并发编程(二十四)----(JUC集合)ArrayBlockingQueue和LinkedBlockingQueue介绍

    这一节我们来了解阻塞队列(BlockingQueue),BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,当容量满时往BlockingQ ...

  3. 【POJ - 2385】Apple Catching(动态规划)

    Apple Catching 直接翻译了 Descriptions 有两棵APP树,编号为1,2.每一秒,这两棵APP树中的其中一棵会掉一个APP.每一秒,你可以选择在当前APP树下接APP,或者迅速 ...

  4. php 中session_set_cookie_params 和 setcookie 函数的区别与用法

    session_set_cookie_params() 函数不管刷不刷新页面,都不会改变cookie的过期时间, 但setcookie() 函数页面每刷新一次,cookie 的过期时间就会刷新一次. ...

  5. 对博弈活动中蕴含的信息论原理的讨论,以及从熵角度看不同词素抽象方式在WEBSHELL文本检测中的效果区别

    1. 从赛马说起 0x1:赛马问题场景介绍 假设在一场赛马中有m匹马参赛,令第i匹参赛马获胜的概率为pi,如果第i匹马获胜,那么机会收益为oi比1,即在第i匹马上每投资一美元,如果赢了,会得到oi美元 ...

  6. 使用flash2print 代替 printflash 将office文档 转为flash 在页面中播放

    前一些日子公司需求把用户上传的一些word等 文档 能像百度文库那样 显示给用户, 但是如果是直接显示office文档的话就需要  些控件的支持 .非常的不友好,所以 一开始我就想能不能转成pdf 来 ...

  7. Python RPC 之 gRPC

    gRPC 简介: gRPC 是一款高性能.开源的 RPC 框架,产自 Google,基于 ProtoBuf 序列化协议进行开发,支持多种语言(Golang.Python.Java等),本篇只介绍 Py ...

  8. Linux下Kafka下载与安装教程

    原文链接:http://www.studyshare.cn/software/details/1176/0 一.预备环境 Kafka是java生态圈中的一员,运行在java虚拟机上,按Kafka官方说 ...

  9. windows安装nginx、mysql等软件并加入系统服务启动详细

    windows类系统安装nginx.mysql软件 (PS:windows系统环境中设置完nginx.mysql环境变量,需要重新启动系统才会生效.) 一.NGINX:首先下载windows版ngin ...

  10. count(*) count(1) count(column)的区别

    count(1)中的1并不是指第一个column: count(*)和count(1)一样,包括对值为NULL的统计: count(column)不包括对值为NULL的统计,这里的column指的不是 ...