Python中字符串与编码示例代码


Posted in Python onMay 20, 2019

在最新的Python 3版本中,字符串是以Unicode编码的,即Python的字符串支持多语言

编码和解码

 

字符串在内存中以Unicode表示,在操作字符串时,经常需要str和bytes互相转换
 

如果在网络上传输或保存到磁盘上,则从内存读到的数据就是str,要把str变为以字节为单位的bytes,称为编码
 

如果从网络或磁盘上读取字节流,则从网络或磁盘上读到的数据就是bytes,要把bytes变为str,称为解码
 

为避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换

使用示例:

单个字符的编码

print(ord('A')) #输出:65,获取字符的整数表示
print(chr(66)) #输出:B,把编码转换为对应的字符

十六进制表示

print('中文') #输出:'中文',
print('\u4e2d\u6587') #输出:'中文','\u4e2d\u6587'和'中文'完全对等,如果知道字符的整数编码,还可以用十六进制这么写str

bytes类型的数据表示

x = b'ABC' #Python对bytes类型的数据用带b前缀的单引号或双引号表示,'ABC'和b'ABC'在显示上完全一样,但bytes的每个字符都只占用一个字节

编码

print('ABC'.encode('ascii')) #输出:b'ABC',以Unicode表示的str通过encode()方法可以编码为指定的bytes
print( '中文'.encode('utf-8')) #输出:b'\xe4\xb8\xad\xe6\x96\x87',
print( '中文'.encode('ascii')) #输出:报错,因为中文字符在ascii编码范围外,所以导致编码失败

解码

print(b'ABC'.decode('ascii')) #输出:'ABC'
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('ascii')) #输出:'中文'
print(b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')) #输出:'中',如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节

计算长度

#len(a)函数返回a的长度,如果a是字符串则返回字符数,如果a是字节表示则返回字节数
print(len('中文')) #输出:2,共2个字符
print(len('ABC')) #输出:3,共3个字符
print(len(b'ABC')) #输出:3,共是3个字节
print(len(b'\xe4\xb8\xad\xe6\x96\x87')) #输出:6,共是6个字节
print(len('中文'.encode('utf-8'))) #输出:6, 1个中文字符经过UTF-8编码后通常会占用3个字节,因此两个汉字的字节数是6

源码文件开头与编码

#!/usr/bin/env python3    告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释
# -*- coding: utf-8 -*-   告诉Python解释器,按照UTF-8编码读取源代码,否则在源代码中写的中文输出可能会有乱码

#注意:告诉编译器使用UTF-8编码并不意味着.py文件就是UTF-8编码的,必须并且要确保.py文件用UTF-8 without BOM编码保存,才可确保文件中的中文正常显示

总结

以上所述是小编给大家介绍的Python中字符串与编码示例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 Python
python使用PIL给图片添加文字生成海报示例
Aug 17 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
python重要函数eval多种用法解析
Jan 14 Python
Django中Q查询及Q()对象 F查询及F()对象用法
Jul 09 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
python语言实现贪吃蛇游戏
Nov 13 Python
一起来学习Python的元组和列表
Mar 13 Python
python实现统计文本中单词出现的频率详解
May 20 #Python
详解Python字符串切片
May 20 #Python
Django中ORM外键和表的关系详解
May 20 #Python
利用Django模版生成树状结构实例代码
May 19 #Python
使用Python3内置文档高效学习以及官方中文文档
May 19 #Python
python反编译学习之字节码详解
May 19 #Python
python从入门到精通 windows安装python图文教程
May 18 #Python
You might like
PHP中创建并处理图象
2006/10/09 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
jquery uploadify 在FF下无效的解决办法
2014/09/26 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
angular 组件通信的几种实现方式
2018/07/13 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
深入Python函数编程的一些特性
2015/04/13 Python
python处理按钮消息的实例详解
2017/07/11 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
python中pivot()函数基础知识点
2021/01/03 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
单位绩效考核方案
2014/05/11 职场文书
老人节标语大全
2014/10/08 职场文书
2014年除四害工作总结
2014/12/06 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python