首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python字符串的前世今生

以一种字符编码形式,例如UTF-8,将代码点映射到代码单元序列,其中每个代码单元是一个多个字节的序列。 Unicode编码字符集是我们通常所说的Unicode。...它用一个、两个、三个四个字节的序列来表示每个代码点。第一个字节的前导位表示序列的长度。其他字节的格式总是“0b10xxxxxx”,以便与第一个字节区分开来。...-8任何其他Unicode编码。...著名的Python3 .0将unicode类型重命名为str类型,并将旧的str类型替换为bytes类型,对此有专门的官方声明概述了这一变化的原因: 与2.x情形的最大区别是,在Python3.0中任何混合文本和数据的操作都会引发...为了支持其他编码,C90标准中引入了wchar_t类型。与char不同,wchar_t可以保证足够大,可以表示由任何支持的作用域设置所指定的任何编码中的所有字符。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Python入门(17)

如果给定一个负数步长, -1 ,将返回翻转过的文本。...4、Unicode 大家有没有注意到,我们编写的代码,一直都只用英文数字。那遇到非英文,比如:中文,怎么办呢? 通常我们会引入unicode编码格式来解决中文的识别和显示问题,如下面的代码。...使用 unicode 编码的字符串,都以字母 u 开头,例如 u"hello world",但在python3以后,其实并不需要这么麻烦,默认都是unicode编码 。...5、utf-8 当我们读取未知文件写入非英文字符文件时,我们需要在open()中将 Unicode 字符指定为“UTF-8”编码格式,建议将 # encoding = utf-8 这一注释,习惯性的放置在程序的顶端...任何问题可以在后面的留言中提出来讨论。当你独立完成这个项目以后,你应该自信自己已经成为了一个真正的python程序员了。 要想成为一名优秀的程序员,最重要的途径就是:多写代码

69120

python encode和decode函数说明

('utf-8')#如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的unicode类型 如上面代码,str\str1\str2均为字符串类型(str),给字符串操作带来较大的复杂性。...字符串 '''下面我们就可以对内容进行各种编码的转换了''' str = u.encode('utf-8')#转换为utf-8编码的字符串str str1 = u.encode('gbk')#转换为gbk...decode的作用是将其他编码的字符串转换成unicode编码,str1.decode('gb2312'),表示将gb2312编码的字符串str1换成unicode编码。...encode的作用是将unicode编码转换成其他编码的字符串,str2.encode('gb2312'),表示将unicode编码的字符串str2换成gb2312编码。...总得意思:想要将其他的编码转换成utf-8必须先将其解码成unicode然后重新编码成utf-8,它是以unicode为转换媒介的 : s='中文' 如果是在utf8的文件中,该字符串就是utf8编码

2.3K20

Python3中文字符编码问题

问题 我们看下面一段代码,获取小说章节列表: def main(request): sql = "SELECT id,title FROM novel LIMIT 10;" result...-8') 字符串通过编码转换为字节码,字节码通过解码转换为字符串: str--->(encode)--->bytes,bytes--->(decode)--->str decode和encode详解 decode...解码,在已知字符串编码的情况下,转码为unicode ,比如 s.decode('utf-8'),结果为unicode encode 编码,在已有unicode的情况下,转码为其它编码,比如 u.encode...('utf-8'),结果为utf-8 Web输出 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。...ensure_ascii 如果无任何配置,或者说使用默认配置, 输出的会是中文的ASCII字符吗,而不是真正的中文。 这是因为json.dumps 序列化时对中文默认使用的ascii编码。

5.4K30

Python3.7中文字符编码问题

问题 我们看下面一段代码,获取小说章节列表: def main(request): sql = "SELECT id,title FROM novel LIMIT 10;" result...-8') 字符串通过编码转换为字节码,字节码通过解码转换为字符串: str--->(encode)--->bytes,bytes--->(decode)--->str decode和encode详解 decode...解码,在已知字符串编码的情况下,转码为unicode ,比如 s.decode('utf-8'),结果为unicode encode 编码,在已有unicode的情况下,转码为其它编码,比如 u.encode...('utf-8'),结果为utf-8 Web输出 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。...ensure_ascii 如果无任何配置,或者说使用默认配置, 输出的会是中文的ASCII字符吗,而不是真正的中文。 这是因为json.dumps 序列化时对中文默认使用的ascii编码。

1.6K10

python 字符串转换long_python整数、字符串、字节串相互转换

Python3不同的是,str实例包含原始的8位值;而unicode的实例,则包含Unicode字符。  把Unicode字符表示为二进制数据(也就是原始8位值)有许多种办法。...最常见的编码方式就是UTF-8。但是,Python3的str实例和Python2的unicode实例都没有和特定的二进制编码形式相关联。...程序的核心部分应该使用Unicode字符类型(也就是Python3中的str、Python2中的unicode),而且不要对字符编码做任何假设。...这种办法既可以令程序接受多种类型的文本编码(Latin-1、Shift JIS和Big5),又可以保证输出的文本信息只采用一种编码形式(最好是UTF-8)。  ...由于字符类型有别,所以Python代码中经常会出现两种常见的使用情境:  开发者需要原始8位值,这些8位值表示以UTF-8格式(其他编码形式)来编码的字符。

1.9K20

Python-基础05-字符编码

#3、在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。...,对其他生僻字用更多的Bytes去存 总结:内存中统一采用unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性...1、在存入磁盘时,需要将unicode转成一种更为精准的格式,utf-8:全称Unicode Transformation Format,将数据量控制到最精简 2、在读入内存时,需要将utf-8unicode...utf-8-------->decode---------->unicode  补充: 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器 如果服务端encode的编码格式是...python诞生之时,unicode并未像今天这样普及,很明显,好的东西你能看得见,龟叔早就看见了,龟叔在python3中将str直接存成unicode,我们定义一个str,无需加u前缀,就是一个unicode

59450

python基础之字符编码

#3、在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。 三 python解释器执行py文件的原理 ,例如python test.py ?...总结:内存中统一采用unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。...1、在存入磁盘时,需要将unicode转成一种更为精准的格式,utf-8:全称Unicode Transformation Format,将数据量控制到最精简 2、在读入内存时,需要将utf-8unicode...#补充: 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器 如果服务端encode的编码格式是utf-8, 客户端内存中收到的也是utf-8编码的结果。...python诞生之时,unicode并未像今天这样普及,很明显,好的东西你能看得见,龟叔早就看见了,龟叔在python3中将str直接存成unicode,我们定义一个str,无需加u前缀,就是一个unicode

64720

爬虫里面的字符串编码的坑

字符编码的作用是将人类可识别的字符转换为机器可识别的字节码,以及反向过程。例如,UNICODE才是真正的字符串,而用ASCII、UTF-8、GBK等字符编码表示的是字节串。...于是来了个大变革,Python3横空出世,不兼容Python2,Python3比Python2做了非常多的改进,其中一个就是终于把字符串变成了unicode,文件默认编码变成了utf-8,这意味着,只要用...如果代码点数值>=128,则Unicode字符无法在此编码中进行表示(这种情况下,Python会引发一个UnicodeEncodeError异常) 将Unicode字符串转换为utf-8编码使用以下规则...: 如果代码点数值<128,则由相应的字节值表示(与UnicodeASCII字节一样) 如果代码点数值>=128,则将其转换为一个2个字节,3个字节4个字节的序列,该序列的每个字节都在128到255...对于程序源代码文件的字符编码是由编辑器指定的,比如我们使用pycharm来编写Python程序时会指定文件编码为UTF-8,那么Python代码被保存到磁盘时就会被转换为UTF-8编码对应的字节(encode

68240

WebSocket系列之字符串如何与二进制数据间进行互相转换

概述 上一篇博客我们说到了如何进行数字类型(Short、Int、Long类型)如何在JavaScript中进行二进制转换,如果感兴趣的可以可以阅读本系列第二篇博客——WebSocket系列之JavaScript...即把Unicode字符集的抽象码位映射为16位长的整数(即码元)的序列,用于数据存储传递。Unicode字符的码位,需要1个或者2个16位长的码元来表示,因此这是一个变长表示。...UTF-8 UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。...它可以用来表示Unicode标准中的任何字元,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字元的软件无须只须做少部分修改,即可继续使用。...根据上面转换为二进制的过程,我们不难想到相关的二进制string类型方法。具体示例如下: import utfx from '.

4.8K10

python decode encode

decode的作用是将其他编码的字符串转换成unicode编码,str1.decode('gb2312'),表示将gb2312编码的字符串str1换成unicode编码。...encode的作用是将unicode编码转换成其他编码的字符串,str2.encode('gb2312'),表示将unicode编码的字符串str2换成gb2312编码。...因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码 代码中字符串的默认编码与代码文件本身的编码一致。...字符本身不知道如何在计算机中保存。下文中,会避免使用“字符串”这个词,而用“文本”来表  示“字符”组成的串。  *编码(动词):按照某种规则(这个规则称为:编码(名词))将“文本”转换为“字节流”。...unicode字符集也在这一层。  字符编码方式:这个开始与计算机有关了。编码字符集的编码点在计算机里的具体表现形式。通俗的说,意思就是怎么样才能将字符所对应的整数的放进计算机内存,文件、网络中。

2.5K10

Python 基础系列--字符串与编码

#如果使用单引号双引号打印多行文本,使用\n做为换行符 >>> print(s) 你好, 欢迎来到清許的公众号。...4.其他对象字符串 在实际应用中,将数据(整数,浮点数据)转为字符串的需求是非常频繁的,python3 中有两种方法将其他对象转为字符串:repr(object),str(object) >>> repr...编码的问题理解了,我们再来看下 Python3 代码的执行过程。 首先 Python3 解释器找到源代码文件,按源代码文件声明的编码方式解码内存,再转成 unicode 字符串。...utf-8 转成了 unicode , 但是这只是 python3, 并不是所有的编程语言在内存里默认编码都是 unicode ,比如 python2 的默认编码是 ascii ,python2 解释器仅以文件头声明的编码去解释你的代码...总结:Python3 对字符串的处理是非常灵活的,有许多操作都可以一行代码完成,换成其他语言可能需要多写很多代码,如果了解关于字符串的详细信息,请使用 help(str) 来查询;对于字符编码问题,还是需要深入理解才行

86720

python 之字符编码

(s,encoding='utf-8') print(res) 字节转换为字符串 s = bytes'hello workd' res = str(s,encoding='utf-8') print(res...decode的作用是将其他编码的字符串转换成unicode编码,str1.decode('gb2312'),表示将gb2312编码的字符串str1换成unicode编码。...encode的作用是将unicode编码转换成其他编码的字符串,str2.encode('gb2312'),表示将unicode编码的字符串str2换成gb2312编码。...总得意思:想要将其他的编码转换成utf-8必须先将其解码成unicode然后重新编码成utf-8,它是以unicode为转换媒介的 :s='中文' 如果是在utf8的文件中,该字符串就是utf8编码,...通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。

80820

《流畅的Python》第四章学习笔记

一个字符串是一个字符序列 字节序列:机器磁芯Unicode:人类可读的本文 把字节序列变成人类可读的文本字符串就是解码「decode」 把字符串变成用于存储传输的字节序列激素编码「encode...」 ---- Python3的「str」类型基本相当于Python2的「unicode」类型 Python3默认使用「UTF-8」编码 Pyhon2默认使用ASCII ?...引发 UnicodeError (其子类);这是默认的方案。在 strict_errors() 中实现。...-be, utf-32-le 允许编码和解码代理代码。...Unicode三明治-目前处理文本的最佳实践 「bytest」->「str」解码输入的字节序列 「str」只处理文本 「str」->「bytest」编码输出的文本 ⚠️需要在多台设备或者多种场景下运行的代码

55810

Python - 了解bytes、str

程序的核心部分应该使用Unicode字符类型(也就是Python3中的str、Python2中的unicode),而且不要对字符编码做任何假设。...这种办法既可以令程序接受多种类型的文本编码(Latin-1、Shift JIS和Big5),又可以保证输出的文本信息只采用一种编码形式(最好是UTF-8)。    ...由于字符类型有别,所以Python代码中经常会出现两种常见的使用情境: 开发者需要原始8位值,这些8位值表示以UTF-8格式(其他编码形式)来编码的字符。...要点: - 在Python3中,bytes是一种包含8位值的序列,str是一种包含Unicode字符的序列。开发者不能以>+等操作符来混同操作bytes和str实例。...摘自《编写高质量Python代码的59个有效方法》--第三条:了解bytes、str与unicode的区别

1.1K10
领券