1.基本概念

字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等

字符集(Character set)是多个字符的集合

字符集包括:ASCII字符集、GB2312字符集、GB18030字符集、Unicode字符集等

ASCII编码是1个字节,而Unicode编码通常是2个字节。

UTF-8是Unicode的实现方式之一,UTF-8是它是一种变长的编码方式,可以是1,2,3个字节

2.Python3中的字符串

Python3中两种字符串类型

 1.str:unicode的呈现形式
 2.bytes: 字节类型,互联网上的数据都是以二进制的方式(字节类型)传输的
使用方法:
 1.str使用encode方法转化为bytes
 2.bytes通过decode转化为str
注意:编码方式与解码方式必须一样,否则就会出现乱码

3.Python2中的字符串

Python2中字符串有两种类型

 1.unicode类型
 2.字节类型

在Python2中,字符串无法完全地支持国际字符集和Unicode编码。为了解决这种限制,Python2对Unicode数据使用了单独的字符串类型。要输入Unicode字符串,要在第一个引号前加上'u'。

Python2中普通字符串实际上就是已经编码(非Unicode)的字节字符串

3.1.python2中的字节类型字符串
python2 中定义字符串的时候,会自动将字符串转换为合适编码的字节字符串,比如中文:自动转换为utf-8编码的字节字符串

举个例子(linux终端,默认终端的编码utf-8):

>>> a = "你好"  #如此定义字符串的时候,其为字节类型
>>> a
'\xc4\xe3\xba\xc3'
>>> type(a)
<type 'str'>

 上面的这种定义方式和在字符串前面加上b的效果一样,可以对其解码,转化为str类型

>>> c =b"你好"
>>> c
'\xe4\xbd\xa0\xe5\xa5\xbd'
>>> type(a)
<type 'str'>
>>> c.decode("utf-8")
u'\u4f60\u597d'

 3.2 Python2中的Unicode类型 
如果需要定义Unicode字符串,即非字节类型的字符串的时候需要在前面加上‘u’

>>> e = u"你好"
>>> e
u'\u4f60\u597d'
>>> type(e)
<type 'unicode'>
>>> e.encode('utf-8')
'\xe4\xbd\xa0\xe5\xa5\xbd'

3.3 python2中字节类型和uicode类型的转化
  1.字节类型通过decode转化为Unicode类型
  2.Unicode类型通过很encode方法转化为字节类型
  3.方法的使用和Python3相同,但是在方法中默认的编码解码方式为ASCII,对中文需要手动指定为utf-8

4.文件编码
  在Python中保存字符串到文件中,文件编码取决于第一次写入的字符串编码,如果后续写入的字符串编码和文件编码不一致时,则出现乱码(Python写入文件没有Unicode编码的文件编码)。
  4.1 Python3只要是写入Unicode字符串,都按‘w’模式写入,除非是 非Unicode(gbk、utf8、jpg、mp4等非Unicode数据),按 "wb" 写入。
  4.2Python2只要是写入字符串,都按 "w" 模式写入,除非是 图片、音频、视频这种非字符串数据,按 "wb" 模式写入。

 

转载于:https://www.cnblogs.com/litao2011/p/9534867.html

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

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

相关文章

分布式数据一致性

分布式系统数据一致性问题 感谢作者分享&#xff01;

HttpServletRequest中获取IP值

获取IP值&#xff1a; public class IpAdrressUtil {/*** 获取Ip地址* param request* return*/private static String getIpAdrress(HttpServletRequest request) {String Xip request.getHeader("X-Real-IP");String XFor request.getHeader("X-Forwarded-F…

国外较好的IT网站

最近有些读者给我来信说很喜欢这个网站上的文章&#xff0c;并且也想通过翻译学习英文&#xff0c;他们询问我这些文章的英文原文是从哪里找到的? 外刊IT评论上的翻译的英文来源很杂&#xff0c;我总结了一下&#xff0c;大概有几个 集中的出处&#xff0c;下面列举出来供大家…

oracle怎样把查询的null转换为0

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 NVL(Expr1,Expr2)如果Expr1为NULL&#xff0c;返回Expr2的值&#xff0c;否则返回Expr1的值 例如&#xff1a;select NVL(SUM(MONEY) ,0…

Map转为String

Map转为String 最近在做redis缓存时&#xff0c;需要将一个Map<String,Object>的对象转换为String对象存入redis&#xff0c;用的时候需从redis中取出来后并转为Map<String,Objcet>对象。 之前的做法直接就是Map对象的toString()存入redis,后面取出是就是用再转换为…

PowerBI分析Exchange服务器IIS运行日志

只要是基于Windows Server 的IIS来提供Web服务的应用&#xff0c;其实都可以对IIS的日志W3C进行分析&#xff0c;这样可以快速的了解整个web站点的运行情况&#xff0c;特别是对一些请求页面响应时间有要要求的&#xff0c;都可以从这些日志中分析问题出在哪&#xff0c;下面我…

创建自已的sql函数

# 随机产生字符串 #rand_string(n INT) rand_string 是函数名 (n INT) //该函数接收一个整数create function rand_string(n INT) returns varchar(255) #该函数会返回一个字符串begin #chars_str定义一个变量 chars_str,类型是 varchar(100),默认值abcdefghijklmnopqrstuvwxyz…

优秀博客汇总

分布式事务产生场景 一文搞定分布式系统数据一致性问题 分布式缓存的基本原理 分布式相关汇总 分布式事务&#xff0c;两阶段提交协议&#xff0c;三阶段提交协议 三星索引 TCP如何保持长连接&#xff0c;并识别不通请求&#xff1f; redisson中的看门狗机制总结 二叉树…

.NET Framework各版本比较

导读&#xff1a;一直以来&#xff0c;众多学校教学以及公司开发环境所使用Visual Studio .NET Framework版本多不相同&#xff0c;本文作者比较了.NET Framework多个版本之间的区别&#xff0c;方便各位选择和切换.NET Framework。 版本号 发布日期 Visual Studio的版本 Windo…

java中 4 种取整函数

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 如下&#xff1a; round 函数可以特别注意一下&#xff1a;

python中的.idea文件夹是干嘛的

pycharm作为IDE时&#xff0c;会自动生成.idea文件夹用。 来存放项目的配置信息。这个文件夹是自动生成&#xff0c;版本控制信息等&#xff0c;包括历史记录。

section8

本章节的目的是 【明确目标用户群】 &#xff0c;以更好的服务现有用户。 【知识点】 1.作图 显示中文plt.rcParams[font.sans-serif] [SimHei] # 步骤一&#xff08;替换sans-serif字体&#xff09; plt.rcParams[axes.unicode_minus] False # 步骤二&#xff08;解决坐标轴…

经典算法汇总

一. 数组相关 二. 链表相关 三. 字符串相关 LeetCode第3题&#xff1a;无重复字符的最长子串 LeetCode第567题&#xff1a;字符串的排列 四. 二叉树相关

码农如何实现高帅富

当今IT界真可谓是好不热闹&#xff1a;谷歌推出chrome os&#xff0c;微软推出windows 8&#xff0c;W3C的HTML5也让人如雷贯耳&#xff0c;又有“云”飘在天上&#xff0c;至于最近最火的移动开发诸如ios、iphone、windows phone更是无人不知&#xff0c;无人不晓了&#xff0…

jQuery的name选择器 模糊匹配

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 $("div[id]") 选择所有含有id属性的div元素 $("input[nameeinsdan]") 选择所有的name属性等于einsdan的input元素 $…

2018.8.26 Spring自学如门

什么是Spring&#xff1f; Spring是一个开源框架&#xff0c;Spring是于2003 年兴起的一个轻量级的Java 开发框架&#xff0c;由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的…

排查腾讯云服务器被挖矿病毒【pnscan】挟持

一、问题发现 最新在使用腾讯云部署项目应用&#xff0c;具体方式为docker部署。今天早上发现腾讯云发来一条报警信息&#xff1a; 看到信息中说到攻击行为&#xff0c;怀疑是否中了病毒&#xff0c;决定排查一下问题。 二、排查过程 首先登录腾讯云服务器控制台&#xff0…

redis 操作

一、自动分配&#xff08;redis&#xff09; 数据放缓存了&#xff0c;为的是速度快 redis是支持持久化的&#xff0c;如果关机了以后&#xff0c;数据已经会放在文件里了 先买上一台电脑&#xff1a;装上redis服务器软件 - 这个服务器有个工网IP&#xff1a;47.93.4.198 - 端口…

GroupID和ArtifactID

GroupID是项目组织唯一的标识符&#xff0c;实际对应JAVA的包的结构&#xff0c;是main目录里java的目录结构。 ArtifactID就是项目的唯一的标识符&#xff0c;实际对应项目的名称&#xff0c;就是项目根目录的名称。

解决报错:java.lang.NoSuchMethodException: com.tangyuan.entity.RicherProduct.<init>()

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.报错;java.lang.NoSuchMethodException: com.tangyuan.entity.RicherProduct.<init>() 2. 我看到网上有人说是因为少写这一句&…