1 ASCII,Unicode,GBK和utf8 ASCII (American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统...因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。 在 python 中,主要有两种类型的字符串类型,分别为 str 和 byte。...其中,str 表示 Unicode 字符(ASCII 成者其他)。byte 表示二进制数据(包括编码的文本)。...在 python3 中,所有的字符串都是 Unicode 字符串。...因此如果你的项目是 python2 要兼容 python3 的话,需要在项目中将字符串加前缀 b) print("abc") print(u"abc") print(b"abc") print(type
以一种字符编码形式,例如UTF-8,将代码点映射到代码单元序列,其中每个代码单元是一个或多个字节的序列。 Unicode编码字符集是我们通常所说的Unicode。...它用一个、两个、三个或四个字节的序列来表示每个代码点。第一个字节的前导位表示序列的长度。其他字节的格式总是“0b10xxxxxx”,以便与第一个字节区分开来。...-8或任何其他Unicode编码。...著名的Python3 .0将unicode类型重命名为str类型,并将旧的str类型替换为bytes类型,对此有专门的官方声明概述了这一变化的原因: 与2.x情形的最大区别是,在Python3.0中任何混合文本和数据的操作都会引发...为了支持其他编码,C90标准中引入了wchar_t类型。与char不同,wchar_t可以保证足够大,可以表示由任何支持的作用域设置所指定的任何编码中的所有字符。
如果给定一个负数步长,如 -1 ,将返回翻转过的文本。...4、Unicode 大家有没有注意到,我们编写的代码,一直都只用英文或数字。那遇到非英文,比如:中文,怎么办呢? 通常我们会引入unicode编码格式来解决中文的识别和显示问题,如下面的代码。...使用 unicode 编码的字符串,都以字母 u 开头,例如 u"hello world",但在python3以后,其实并不需要这么麻烦,默认都是unicode编码 。...5、utf-8 当我们读取未知文件或写入非英文字符文件时,我们需要在open()中将 Unicode 字符指定为“UTF-8”编码格式,建议将 # encoding = utf-8 这一注释,习惯性的放置在程序的顶端...任何问题可以在后面的留言中提出来讨论。当你独立完成这个项目以后,你应该自信自己已经成为了一个真正的python程序员了。 要想成为一名优秀的程序员,最重要的途径就是:多写代码!
('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编码
问题 我们看下面一段代码,获取小说章节列表: 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编码。
与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格式(或其他编码形式)来编码的字符。
#3、在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。...,对其他生僻字用更多的Bytes去存 总结:内存中统一采用unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,如utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性...1、在存入磁盘时,需要将unicode转成一种更为精准的格式,utf-8:全称Unicode Transformation Format,将数据量控制到最精简 2、在读入内存时,需要将utf-8转成unicode...utf-8-------->decode---------->unicode  补充: 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器 如果服务端encode的编码格式是...python诞生之时,unicode并未像今天这样普及,很明显,好的东西你能看得见,龟叔早就看见了,龟叔在python3中将str直接存成unicode,我们定义一个str,无需加u前缀,就是一个unicode
#3、在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。 三 python解释器执行py文件的原理 ,例如python test.py ?...总结:内存中统一采用unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,如utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。...1、在存入磁盘时,需要将unicode转成一种更为精准的格式,utf-8:全称Unicode Transformation Format,将数据量控制到最精简 2、在读入内存时,需要将utf-8转成unicode...#补充: 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器 如果服务端encode的编码格式是utf-8, 客户端内存中收到的也是utf-8编码的结果。...python诞生之时,unicode并未像今天这样普及,很明显,好的东西你能看得见,龟叔早就看见了,龟叔在python3中将str直接存成unicode,我们定义一个str,无需加u前缀,就是一个unicode
字符编码的作用是将人类可识别的字符转换为机器可识别的字节码,以及反向过程。例如,UNICODE才是真正的字符串,而用ASCII、UTF-8、GBK等字符编码表示的是字节串。...于是来了个大变革,Python3横空出世,不兼容Python2,Python3比Python2做了非常多的改进,其中一个就是终于把字符串变成了unicode,文件默认编码变成了utf-8,这意味着,只要用...如果代码点数值>=128,则Unicode字符无法在此编码中进行表示(这种情况下,Python会引发一个UnicodeEncodeError异常) 将Unicode字符串转换为utf-8编码使用以下规则...: 如果代码点数值<128,则由相应的字节值表示(与Unicode转ASCII字节一样) 如果代码点数值>=128,则将其转换为一个2个字节,3个字节或4个字节的序列,该序列的每个字节都在128到255...对于程序源代码文件的字符编码是由编辑器指定的,比如我们使用pycharm来编写Python程序时会指定文件编码为UTF-8,那么Python代码被保存到磁盘时就会被转换为UTF-8编码对应的字节(encode
概述 上一篇博客我们说到了如何进行数字类型(如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 '.
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。...encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。...因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码 代码中字符串的默认编码与代码文件本身的编码一致。...字符本身不知道如何在计算机中保存。下文中,会避免使用“字符串”这个词,而用“文本”来表 示“字符”组成的串。 *编码(动词):按照某种规则(这个规则称为:编码(名词))将“文本”转换为“字节流”。...unicode字符集也在这一层。 字符编码方式:这个开始与计算机有关了。编码字符集的编码点在计算机里的具体表现形式。通俗的说,意思就是怎么样才能将字符所对应的整数的放进计算机内存,或文件、或网络中。
#如果使用单引号或双引号打印多行文本,使用\n做为换行符 >>> print(s) 你好, 欢迎来到清如許的公众号。...4.其他对象转字符串 在实际应用中,将数据(整数,浮点数据)转为字符串的需求是非常频繁的,python3 中有两种方法将其他对象转为字符串:repr(object),str(object) >>> repr...编码的问题理解了,我们再来看下 Python3 代码的执行过程。 首先 Python3 解释器找到源代码文件,按源代码文件声明的编码方式解码内存,再转成 unicode 字符串。...utf-8 转成了 unicode , 但是这只是 python3, 并不是所有的编程语言在内存里默认编码都是 unicode ,比如 python2 的默认编码是 ascii ,python2 解释器仅以文件头声明的编码去解释你的代码...总结:Python3 对字符串的处理是非常灵活的,有许多操作都可以一行代码完成,换成其他语言可能需要多写很多代码,如果了解关于字符串的详细信息,请使用 help(str) 来查询;对于字符编码问题,还是需要深入理解才行
(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编码,...通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。
一个字符串是一个字符序列 字节序列:机器磁芯转储 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」编码输出的文本 ⚠️需要在多台设备或者多种场景下运行的代码
Python中进行排序 说明 所有程序员都必须编写代码来对项目或数据进行排序。...没有其他参数或范围的sorted()函数默认按按升序排序值, 这意味着值从最小到最大。 3. ...1.2 对字符串进行排序 str类型的排序类似于其他迭代, 如列表和元组。...该数字1还可以转换为True作为布尔类型, 而0转换为False。 ...在输出和就地修改时,两者都具有非常不同的特性,因此请确保您考虑将使用.sort()的任何应用程序功能或程序,因为.sort()可以不可撤销地覆盖数据。
程序的核心部分应该使用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的区别
标识符介绍: s(str或None)[char *] 使用'utf-8'编码将以null结尾的C字符串转换为Python str对象。如果C字符串指针为NULL,则表示None。...s#(str或None)[char *,int] 使用'utf-8'编码将C字符串及其长度转换为Python str对象。如果C字符串指针为NULL,则忽略长度返回None。...u(str)[Py_UNICODE *] 将Unicode(UCS-2或UCS-4)数据的以null结尾的缓冲区转换为Python Unicode对象。...u#(str)[Py_UNICODE *,int] 将Unicode(UCS-2或UCS-4)数据缓冲区及其长度转换为Python Unicode对象。...(py_unicode); // 把unicode转成utf-8 const char *c_string = PyString_AsString(py_utf8); // 把utf-8
建议新入手的python使用者选择python3。如果你的项目深度依赖于python2代码库,那么可以考虑2to3与six工具来过渡到python3。...str str实例包含的是Unicode码点。 在python3中,默认的编码方案是utf-8....在编写python代码的时候,一定要把解码和编码操作放在最外层来做,让程序的核心部分可以使用Unicode数据来操作,这种办法叫做Unicode三明治。...程序核心应该使用str类型的Unicode数据,并且最好使用utf-8编码。 bytes和str的区别 python3是强类型语言,bytes和str是两种不同的数据类型,它们之间不能直接运算。...而是必须转换为统一的数据类型。通常是通过下面这两个辅助函数来完成。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。...编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。...标识符 第一个字符必须是字母表中字母或下划线 _ 。 标识符的其他的部分由字母、数字和下划线组成。 标识符对大小写敏感。...python保留字 保留字即关键字,我们不能把它们用作任何标识符名称。.../usr/bin/python3 # 第一个注释 print ("Hello, Python!") # 第二个注释 执行以上代码,输出结果为: Hello, Python!
领取专属 10元无门槛券
手把手带您无忧上云