29 Python - 字符与编码

字符与编码

01 字符串本质

 

 

Python字符串相关概念

字符串     str

字节       bytes

字节数组   bytearray

 

电脑字符串存储机制

字符库:A、B每个字符有一个代码点如A是65  B为66,这种是方便人类读写的形式,但是最终需要存入计算机的CPU和内存,需要转换成字节的二进制,就涉及到字节的编码。

字节的编码:如A的字节编码为b开头的b‘A’,对应的二进制为0100 0001(激素65的二进制编码)

因为ASCII编码比较简单,直接把代码点当成二进制编码来存储

将字符转换为字节的过程我们称为编码,反之称为解码;如我们最常见的ASCII编码就是负责编码和解码的工作

但是后来各个国家都有字节的字符集,就出现了很多字符集合字符编码。

不同编码并存的解决办法,就是unicode,但是这个长度固定,有点浪费空间。现在比较流行的就是utf8是可变字节即可变长的编码

 

 

 

 

02 ASCII UTF8编码

 

 

ASCII:用于常见英文字符,存在一个Byte中,0-127(即代码点)

Python插件ASCII代码点和字符互查的函数

 

 

 

UTF-8最通用

 

 

 

 

 

03 字节与文本的编码 解码

 

 

字符编码为字节

例子:

s1位字符,

使用encode(‘指定编码’)编码为字节,

其中b开头意思为字节

中文用ASCII无法编码,需要用UTF8进行编码

 

 

 

字节解码为字符

例子

B1位字节码

       利用decode(‘指定编码’)进行解码

 

 

 

 

Python的编码和解码不指定的话,默认为UTF8

 

 

Python的文件操作如果不指定编码,默认以GBK操作(以操作系统编码为准),所以文本操作建议指定编码

 

 

04 bytes str bytesarray之间互相转换

在内存表现的永远是字符串,存储或运算过程中总以字节形式存在

 

 

 

001字符到字节

(1)利用字符的方法encode

 

 

(2)文本形式以二进制进行读取

 

 

(3)利用字节的bytes方法——字节大小不能超过256

 

 

 

 

 

002 字节到字符

 

 

 

 

 

003 字节数组bytearray

形式

 

 

(1)字符s1存入字节数组中,利用bytearray(字符串,编码)

 

 

(2)字节数组可以通过下标取值  可以改变值

 

 

(3)支持很多列表的很多方法

 

 

Append的值大小不能超过256

 

 

 

(4)字节数组转换为字符

 

 

 

 

05 字符串BOM处理

BOM字节顺序标记

 

 

 

有一个文件data.txt

 

 

打开读取内容,想忽略字节顺序标记

 

 

 

 

字节写入文件,写入字节顺序标记

 

 

 

转载于:https://www.cnblogs.com/yijiexi/p/11140657.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF:从WPF Diagram Designer Part 4学习分组、对齐、排序、序列化和常用功能

在前面三篇文章中我们介绍了如何给图形设计器增加移动、选择、改变大小及面板、缩略图、框线选择和工具箱和连接等功能,本篇是这个图形设计器系列的最后一篇,将和大家一起来学习一下如何给图形设计器增加分组、对齐、排序、序列化等功能。 WPF Diagram D…

ASP.NET Core跨域设置

项目中经常会遇到跨域问题,解决方法: 在appsettings.json 文件中添加json项 {"Logging": {"LogLevel": {"Default": "Warning"}},"AllowedHosts": "*","AppCores": "https…

CSS设计指南(读书笔记 - 背景)

本文转自william_xu 51CTO博客,原文链接:http://blog.51cto.com/williamx/1140006,如需转载请自行联系原作者

火车头如何才能设置发布的时候,如果是有html代码就直接的转换掉,互联网上笑话抽取及排重---火车头采集器的使用和MD5算法的应用...

10011311341 吕涛、10011311356李红目的:通过熟悉使用火车头采集器,在网络上采取3万条笑话并进行排重,以此来熟悉web文本挖掘的一些知识。过程:本次学习,主要分成两个部分。第一部分是笑话文本的采集,第二部…

win10上面安装win7的虚拟机怎么相互ping通

最近干了一些很蛋疼的事,这些都是自己踩过的坑,记录下来方便自己以后查阅 首先我的目的就是为了在自己的PC机上面部署一个SVN服务器,然后安装一个客户端,自己写的软件就可以定期入库,做好自己的版本控制,但…

win10用计算机名访问文件夹,win10系统提示你当前无权访问该文件夹的解决方法【图文教程】...

Win10系统下,我们在访问或更改某些系统文件夹时,有时会遇到系统提示“你当前无权访问该文件夹”的情况。那么,遇到这种情况的话,我们该怎么办呢?接下来,小编就向大家分享win10系统提示“你当前无权访问该文…

.Net Micro Framework研究—实现SideShow窗体界面

基于MF系统的Windows SideShow界面是非常炫的(如下图)。既然微软能用.Net Micro Framework实现这么棒的界面效果,我想我们也能做到。 (SideShow模拟器界面和游戏程序中的右键菜单—注意菜单弹出后,其它的界面变暗了&am…

2017年读书计划(一)

前言 这篇博文就暂时不记录技术了,记录下生活。对自己今年2017年做个读书计划安排。 最近在看一部网络剧 - 《花间提壶方大厨》,也许你们会感觉我很无聊,我也是被头条带坏了,每天上班一个小时的地下交通-地铁,就借助上…

音标

音标 oror ds念子音,ts念s音

数据结构与算法---查找算法(Search Algorithm)

查找算法介绍 在java中,我们常用的查找有四种: 顺序(线性)查找 二分查找/折半查找 插值查找斐波那契查找1)线性查找算法 示例: 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了&a…

Exchange Server 2007邮箱存储服务器的集群和高可用性技术(上)

高可用性矩阵-->见下图:邮箱服务器高可用性目标: 数据可用性-->保护邮箱数据免于失败和损坏服务可用性-->提高群集实效转移操作 简化群集管理 支持地理分散的群集 支持低成本大邮箱(GB)使用户可以基于业务需要更好的选择容错方案提高解决方案的可用性使用解决方案可…

html设置按钮样式变为椭圆,css border-radius圆形变为椭圆形,位置:绝对

我正在围绕字体真棒图标创建一个圆圈。我的问题是,当我添加position: absolute圆成为一个椭圆。css border-radius圆形变为椭圆形,位置:绝对同样的情况,如果我是设置display: block这里是什么,我想实现的图像 -CONRADU…

《火球——UML大战需求分析》(第1章 大话UML)——1.5 小结和练习

说明: 《火球——UML大战需求分析》是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张。欢迎你按文章的序号顺序阅读,谢谢!本书已经在各大网…

金陵科技学院计算机开设课程,金陵科技学院各专业介绍

各专业介绍会计学专业(四年制本科) 金融学专业(四年制本科)财务管理专业(四年制本科) 国际经济与贸易专业(四年制本科)市场营销专业(四年制本科)国际商务专业(三年制专科)物流管理专业(三年制专科) 对外汉语专业(四年制本科)古典文献(古籍修复)专业(四年制本科)行政管理(高级秘…

【jQuery Demo】图片由下至上逐渐显示

无意中看到如何实现一张图片从下往上慢慢显现出来这个问题,弄了半天还是从上往下的效果,纠结了,最后还是提问人自己搞定了!不过哈哈,又学到一点知识! 1.下面是我自己做的效果(按钮可以点哦) 图片由下至上逐…

两个数之和等于第三个数

这是一个很好的算法题,解法类似于快速排序的整理方法。同时,更为值得注意的是这道题是 人人网2014校园招聘的笔试题,下面首先对题目进行描述: 给出一个有序数组,另外给出第三个数,问是否能在数组中找到两个…

html标题前色块,CSS轻松实现色块标题标识

不少网站开始采用韩式风格来建站,这种风格的特点是色彩变化丰富、应用Flash动画合理、结构新颖,最明显的特点就是表格或标题栏常会加上一条横或竖的色带,如图1中圈起来的地方就是这样。(图一)一般人都会想到用Photoshop等软件来完成这样的效果…

101与金根回顾敏捷个人:(13)敏捷个人和敏捷开发

本文更新版本已挪至 http://www.zhoujingen.cn/blog/1726.html ------------------------- 敏捷个人源于工作 自2001初成立了敏捷联盟到现在10年的推广,敏捷开发已日渐成为当前IT行业软件开发的一种主流方法。没有银弹,任何方法都不可能解决所有问题&a…

Exchange server 2010系列教程之三 发送邮件测试

最近有些忙,好几天没有上来写教程了,接着往下写吧。就当是自己的学习笔记,呵呵,有不到之处,还请大家多多指教。 上一篇我们已经把服务器架设好了,那么我们来测试一下发送邮件。 1.首先在AD DC上面新建一个域…

华科的计算机和建筑学哪个强,华中科技大学和华南理工大学相比,谁更占优势?看了也许就知道了...

大学是学生接受教育的过程中非常重要的一个阶段,很多学生都会尽可能在高考中,考出更好的成绩,争取报考一个更好的大学。为了提升教育水平,我国到目前为止建设了超过3000所大学,其中有很多高等院校非常相似,…