编码

不管是哪种语言,在学习的时候,只要涉及到中文,多多少少都会遇到一些编码问题。然而,说实话,作为一个英语水平没有那么专业的中国人,中文是必不可少的。所以,了解编码以及解码就变得非常重要。下面是从各个资料整合并且亲自动手尝试的编码介绍。

各种编码格式的发展历程

编码有很多种 ,计算机最初是在美国等国家发明的 所以表示字符只有简单的几个字母只要对字母进行编码就好 我们标准码 iso-8859-1 这就是一个标准。
但是后来计算机普及了 于是就中国要使用计算机了 但是机器不认得中文,于是就有了国际码。 gbk gb2312都是这类。两个其实一个,一个是标准(发布的代号),一个是简称。后来多了个阿拉伯语、日语、韩语…所以就出来统一编码unicode
然而,unicode虽然统一了全世界字符的二进制编码,但没有规定如何存储啊,亲。x86和amd体系结构的电脑小端序和大端序都分不清,别提计算机如何识别到底是unicode还是acsii了。如果Unicode统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,文本文件的大小会因此大出二三倍,这对于存储来说是极大的浪费。这样导致一个后果:出现了Unicode的多种存储方式。
互联网的兴起,网页上要显示各种字符,必须统一啊,亲。utf-8就是Unicode最重要的实现方式之一。另外还有utf-16、utf-32等。UTF-8不是固定字长编码的,而是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。这是种比较巧妙的设计,如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。

原始的始祖ASCII

我们需要了解的最早编码是ASCII码。它用7个二进制位来表示,由于那个时期生产的大多数计算机使用8位大小的字节,因此用户不仅可以存放所有 可能的ASCII字符,而且有整整一位空余下来。如果你技艺高超,可以将该位用做自己离奇的目的:WordStar中那个发暗的灯泡实际上设置这个高位, 以指示一个单词中的最后一个字母,同时这也宣示了WordStar只能用于英语文本。
  由于字节有多达8位的空间,因此许多人在想:“呀!我们 可以把128255之间的编码用做个人的应用目的。”问题在于,同时产生这种想法的人相当多,而且在128255之间的各个位置上应该存放什么这一问 题上,真是仁者见仁智者见智。事实上,只要人们开始在美国以外的地方购买计算机,那么各种各样的不同OEM字符集都会进入规划设计行列,并且各人都会根据 自己的需要使用高位的128个字符。如此一来,甚至在同语种的文档之间就不容易实现互换。 ASCII可被扩展,最优秀的扩展方案是ISO 8859-1,通常称之为Latin-1。Latin-1包括了足够的附加字符集来写基本的西欧语言。
最后,这个人人参与的OEM终于以ANSI标准的形式形成文件。在ANSI标准中,每个人都认同如何使用低端的128个编码,这与ASCII相当一致。不过,根据所在国籍的不同,处理编码128以上的字符有许多不同的方式。这些不同的系统称为代码页。
  同时,甚至更为令人头疼的事情正在逐步上演,亚洲国家的字符表有成千上万个字符,这样的字符表是用8位二进制无法表示的。该问题的解决通常有赖于称为DBCS(double byte character set,双字节字符集)的繁杂字符系统。
   不过,仍然需要指出一点,多数人还是姑且认为一个字节就是一个字符,以及一个字符就是8个二进制位,并且只要确保不将字符串从一台计算机移植到另一台计 算机,或者说一种以上的语言,那么这几乎总是可以凑合。当然,只要一进入Internet,从一台计算机向另一台计算机移植字符串就成为家常便饭了,而各 种复杂状况也随之呈现出来。令人欣慰的是,Unicode随即问世了。

作用:表语英语及西欧语言。
位数:ASCII是用7位表示的,能表示128个字符;其扩展使用8位表示,表示256个字符。
范围:ASCII从00到7F,扩展从00到FF(ASCII码是十六进制表示)。

最早的英文起源的ISO-8859-1

属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。比如,字母’a’的编码为0x61=97。

很明显,iso8859-1编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍 旧使用iso8859-1编码来表示。而且在很多协议上,默认使用该编码。比如,虽然"中文"两个字不存在iso8859-1编码,以gb2312编码为 例,应该是"d6d0 cec4"两个字符,使用iso8859-1编码的时候则将它拆开为4个字节来表示:“d6 d0 ce c4”(事实上,在进行存储的时候,也是以字节为单位处理的)。而如果是UTF编码,则是6个字节"e4 b8 ad e6 96 87"。很明显,这种表示方法还需要以另一种编码为基础。

作用:扩展ASCII,表示西欧、希腊语等。
位数:8位,
范围:从00到FF,兼容ASCII字符集。

解决中国人中文问题的GB系列-GB码字符集

全称是GB2312-80《信息交换用汉字编码字符集基本集》,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡 等)是强制使用的唯一中文编码。P-Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码、但兼容支持GB2312。
双字节编码
范围:A1A1~FEFE
A1-A9:符号区,包含682个符号
B0-F7:汉字区,包含6763个汉字

解决中国人中文问题的GB系列-GB2312

GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从 A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。GB2312-80中共收录了7545个字符,用两个字节编码一个 字符。每个字符最高位为0。GB2312-80编码简称国标码。

GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。

作用:国家简体中文字符集,兼容ASCII。
位数:使用2个字节表示,能表示7445个符号,包括6763个汉字,几乎覆盖所有高频率汉字。
范围:高字节从A1到F7, 低字节从A1到FE。将高字节和低字节分别加上0XA0即可得到编码。

解决中国人中文问题的GB系列-GB12345

1990年制定了繁体字的编码标准GB12345-90《信息交换用汉字编码字符集第一辅助集》,目的在于规范必须使用繁体字的各种场合,以及古籍整理 等。该标准共收录6866个汉字(比GB2312多103个字,其它厂商的字库大多不包括这些字),纯繁体的字大概有2200余个。
双字节编码
范围:A1A1~FEFE
A1-A9:符号区,增加竖排符号
B0-F9:汉字区,包含6866个汉字

解决中国人中文问题的GB系列-GBK

GBK编码(Chinese Internal Code Specification)是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。gbk编码能够用来同时表示繁体字和简体字,而gb2312只 能表示简体字,gbk是兼容gb2312编码的。GBK工作小组于1995年10月,同年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字 21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。Windows95/98简体中文版的字库表层编码就采用的是GBK,通过 GBK与UCS之间一一对应的码表与底层字库联系。
英文名:Chinese Internal Code Specification
中文名:汉字内码扩展规范1.0版
双字节编码,GB2312-80的扩充,在码位上和GB2312-80兼容
范围:8140~FEFE(剔除xx7F)共23940个码位
包含21003个汉字,包含了ISO/IEC 10646-1中的全部中日韩汉字

作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。
位数:使用2个字节表示,可表示21886个字符。
范围:高字节从81到FE,低字节从40到FE。

繁体中文BIG5字符集

是目前台湾、香港地区普遍使用的一种繁体汉字的编码标准,包括440个符号,一级汉字5401个、二级汉字7652个,共计13060个汉字。BIG5又 称大五码或五大码,1984年由台湾财团法人信息工业策进会和五间软件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、大众 (FIC)创立,故称大五码。Big5码的产生,是因为当时台湾不同厂商各自推出不同的编码,如倚天码、IBM PS55、王安码等,彼此不能兼容;另一方面,台湾政府当时尚未推出官方的汉字编码,而中国大陆的GB2312编码亦未有收录繁体中文字。

Big5字符集共收录13,053个中文字,该字符集在中国台湾使用。耐人寻味的是该字符集重复地收录了两个相同的字:“兀”(0xA461及0xC94A)、“嗀”(0xDCD1及0xDDFC)。

Big5码使用了双字节储存方法,以两个字节来编码一个字。第一个字节称为“高位字节”,第二个字节称为“低位字节”。高位字节的编码范围0xA1-0xF9,低位字节的编码范围0x40-0x7E及0xA1-0xFE。

尽管Big5码内包含一万多个字符,但是没有考虑社会上流通的人名、地名用字、方言用字、化学及生物科等用字,没有包含日文平假名及片假字母。

例如台湾视“着”为“著”的异体字,故没有收录“着”字。康熙字典中的一些部首用字(如“亠”、“疒”、“辵”、“癶”等)、常见的人名用字(如“堃”、“煊”、“栢”、“喆”等) 也没有收录到Big5之中。

8.GB18030字符集

 GB 18030-2000全称是《信息技术信息交换用汉字编码字符集基本集的扩充》,由信息产业部和原国家质量技术监督局于2000年3月17日联合发布,作为国家强制性标准自发布之日起实施。为了适应信息处理技术快速发展的需要,1998年10月,由信息产业部电子四所、北京大学计算机技术研究所、北大方正集团、新天地公司、四通新世纪公司、 中科院软件所、长城软件公司、中软总公司、金山软件公司和联想公司的技术人员组成标准起草组。在标准研制过程中,全国信息技术标准化技术委员会多次召集标 准起草组和知名公司对标准草案进行充分地研究论证,并且特邀了微软公司、惠普公司、Sun公司和IBM公司等参加,广泛征求意见。标准起草组经过反复斟酌 和验证,提出了标准制定原则——与GB 2312信息处理交换码所对应的事实上的内码标准兼容,在字汇上支持GB 13000.1的全部中、日、韩(CJK)统一汉字字符和全部CJK扩充A的字符,并且确定了编码体系和27484个汉字,形成兼容性、扩展性、前瞻性兼 备的方案。该标准采用单字节、双字节和四字节三种方式对字符编码。

作用:它解决了中文、日文、朝鲜语等的编码,兼容GBK。
位数:它采用变字节表示(1 ASCII,2,4字节)。可表示27484个文字。
范围:1字节从00到7F; 2字节高字节从81到FE,低字节从40到7E和80到FE;4字节第一三字节从81到FE,第二四字节从30到39。

过渡时期产物通用字符集(UCS)字符集

   ISO/IEC 10646-1 [ISO-10646]定义了一种多于8比特字节的字符集,称作通用字符集(UCS),它包含了世界上大多数可书写的字符系统。已定义了两种多8比特字节 编码,对每一个字符采用四个8比特字节编码的称为UCS-4,对每一个字符采用两个8比特字节编码的称为UCS-2。它们仅能够对UCS的前64K字符进 行编址,超出此范围的其它部分当前还没有分配编址。

作用:国际标准 ISO 10646 定义了通用字符集 (Universal Character Set)。它是与UNICODE同类的组织,UCS-2和UNICODE兼容。
位数:它有UCS-2和UCS-4两种格式,分别是2字节和4字节。
范围:目前,UCS-4只是在UCS-2前面加了0x0000。

解决世界人民语言沟通问题的unicode

Unicode字符集(简称为UCS),国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国文字、符号进行统一性编码。1991年美国跨国公司成立Unicode Consortium,并于1991年10月与WG2达成协议,采用同一编码字集。目前Unicode是采用16位编码体系,其字符集内容与 ISO10646的BMP(Basic Multilingual Plane)相同。Unicode于1992年6月通过DIS(Draf International Standard),目前版本V2.0于1996公布,内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留 20249个,共计65534个。Unicode编码后的大小是一样的.例如一个英文字母 “a” 和 一个汉字 “好”,编码后都是占用的空间大小是一样的,都是两个字节!

    Unicode可以用来表示所有语言的字符,而且是定长双字节(也有四字节的)编码,包括英文字母在内。所以可以说它是不兼容iso8859-1编码的, 也不兼容任何编码。不过,相对于iso8859-1编码来说,uniocode编码只是在前面增加了一个0字节,比如字母'a'为"00 61"。需要说明的是,定长编码便于计算机处理(注意GB2312/GBK不是定长编码),而unicode又可以用来表示所有字符,所以在很多软件内部是使用unicode编码来处理的,比如java。UNICODE字符集有多个编码方式,分别是UTF-8,UTF-16,UTF-32和UTF-7编码。

解决存储问题的UTF-8

UTF-8

   UTF:UCS Transformation Format.考虑到unicode编码不兼容iso8859-1编码,而且容易占用更多的空间:因为对于英文字母,unicode也需要两个字节来表 示。所以unicode不便于传输和存储。因此而产生了utf编码,utf编码兼容iso8859-1编码,同时也可以用来表示所有语言的字符,不 过,utf编码是不定长编码,每一个字符的长度从1-6个字节不等。另外,utf编码自带简单的校验功能。一般来讲,英文字母都是用一个字节表示,而汉字 使用三个字节。

注意,虽然说utf是为了使用更少的空间而使用的,但那只是相对于unicode编码来说,如果已经知道是汉字,则使用GB2312/GBK无疑是 最节省的。不过另一方面,值得说明的是,虽然utf编码对汉字使用3个字节,但即使对于汉字网页,utf编码也会比unicode编码节省,因为网页中包 含了很多的英文字符。

UTF8编码后的大小是不一定,例如一个英文字母"a" 和 一个汉字 “好”,编码后占用的空间大小就不样了,前者是一个字节,后者是三个字节!编码的方法是从低位到高位。黄色为标志位其它着色为了显示其,编码后的位置。

UTF-16

   采用2 字节,Unicode中不同部分的字符都同样基于现有的标准。这是为了便于转换。从 0x0000到0x007F是ASCII字符,从0x0080到0x00FF是ISO-8859-1对ASCII的扩展。希腊字母表使用从0x0370到 0x03FF 的代码,斯拉夫语使用从0x0400到0x04FF的代码,美国使用从0x0530到0x058F的代码,希伯来语使用从0x0590到0x05FF的代 码。中国、日本和韩国的象形文字(总称为CJK)占用了从0x3000到0x9FFF的代码;

由于0x00在c语言及操作系统文件名等中有特殊意义,故很多情况下需要UTF-8编码保存文本,去掉这个0x00。举例如下:

UTF-16: 0x0080 = 0000 0000 1000 0000

UTF-8: 0xC280 = 1100 0010 1000 0000

UTF-32

  采用4字节。

UTF-7

  A Mail-Safe Transformation Format of Unicode(RFC1642)。这是一种使用 7 位 ASCII 码对 Unicode 码进行转换的编码。它的设计目的仍然是为了在只能传递 7 为编码的邮件网关中传递信息。 UTF-7 对英语字母、数字和常见符号直接显示,而对其他符号用修正的 Base64 编码。符号 + 和 - 号控制编码过程的开始和暂停。所以乱码中如果夹有英文单词,并且相伴有 + 号和 - 号,这就有可能是 UTF-7 编码。

作用:为世界650种语言进行统一编码,兼容ISO-8859-1。
位数:UNICODE字符集有多个编码方式,分别是UTF-8,UTF-16和UTF-32。
很多人以为UTF-8等和Unicode都是字符集或都是编码方式,其实这是误区。

其他编码方式

MIME 编码

    MIME 是“多用途网际邮件扩充协议”的缩写,在 MIME 协议之前,邮件的编码曾经有过 UUENCODE 等编码方式 ,但是由于 MIME 协议算法简单,并且易于扩展,现在已经成为邮件编码方式的主流,不仅是用来传输 8 bit 的字符,也可以用来传送二进制的文件 ,如邮件附件中的图像、音频等信息,而且扩展了很多基于MIME 的应用。从编码方式来说,MIME 定义了两种编码方法Base64与QP(Quote-Printable)

Base64

   按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。

为什么要使用Base64?

在设计这个编码的时候,我想设计人员最主要考虑了3个问题:
1.是否加密?
2.加密算法复杂程度和效率
3.如何处理传输?

     加密是肯定的,但是加密的目的不是让用户发送非常安全的Email。这种加密方式主要就是“防君子不防小人”。即达到一眼望去完全看不出内容即可。

基 于这个目的加密算法的复杂程度和效率也就不能太大和太低。和上一个理由类似,MIME协议等用于发送Email的协议解决的是如何收发Email,而并不 是如何安全的收发Email。因此算法的复杂程度要小,效率要高,否则因为发送Email而大量占用资源,路就有点走歪了。

     但是,如果是基于以上两点,那么我们使用最简单的恺撒法即可,为什么Base64看起来要比恺撒法复杂呢?这是因为在Email的传送过程中,由于历史原 因,Email只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的Email通 过有“历史问题”的网关时就可能会出现问题。网关可能会把最高位置为0!很明显,问题就这样产生了!因此,为了能够正常的传送Email,这个问题就必须 考虑!所以,单单靠改变字母的位置的恺撒之类的方案也就不行了。关于这一点可以参考RFC2046。

基于以上的一些主要原因产生了Base64编码。

  Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。

QP(Quote-Printable)

    通常缩写为“Q”方法,其原理是把一个 8 bit 的字符用两个16进制数值表示,然后在前面加“=”。所以我们看到经过QP编码后的文件通常是这个样子:=B3=C2=BF=A1=C7=E5=A3=AC=C4=FA=BA=C3=A3=A1。最后,我们希望你看了这篇文章之后不要混淆字符集和字符编码的概念,还有对以上谈到的各种编码方式的原因有大致的了解,象utf-8这类是为了解析 unicode这种字符集而制定,而base64这类是为了解决实际的网络应用而制定。为了让你便于记忆,对先前介绍的字符集进行统计和分类:

编码和解码

在计算机中,所有的数据只可能是0或者1(用高电平和低电平分别表示1和0),那么我们通常看到的字符也就只能用0和1来表示呀。于是科学家们(这里指的是美国的科学家)就想出一个办法,把一个特定的数字对应一个特定的字母进行存储和传输,比如我需要存储字母a,那么我存入一个数字97(即在计算机中存入二进制(01100001),这个过程叫做编码(encode),而我们在读取数据的时候,当遇到97时,我们就让计算机显示字母a,这个过程叫做解码(decode)。
计算机看懂的东西我们看不懂,我们看懂的东西,计算机看不懂。

把计算机看懂的东西(二进制(01100001))变成我们看懂的东西(数字97,也就是a),这个过程叫解码(decode)
把我们看懂的东西(数字97,也就是a)变成计算机看懂的东西(二进制(01100001)),这个过程叫做编码(encode)
对于我们实际使用来说,编码,就是指我们在内存中处理完一个文件了,然后需要保存到本地磁盘了,这个时候我们会为这个即将保存到磁盘中的文件设置编码格式。就像这样啦:filename.encode(“utf-8”)。在Python中,一般默认给它设置为utf-8格式(当然,我们也可以自己选择,要是我们生成的这个文件中只有英文内容,那我们就用ASCII,要是我们生成的有中文,那可以用GBK,当然,最好还是用utf-8,毕竟,它可是万能的,中英文都能处理)。
而解码,在实际使用中是什么意思呢?
它其实就是指,当计算机语言处理一个本地的文件时,我们就需要把它加载到内存里了,对不对,这个时候呢,我们考虑到速度问题,在Python3中就会自动把它解码成unicode的格式,让计算机对它进行处理。当然源文件的格式可能是多种多样的,如果磁盘中是一个GBK格式的源文件,那我们把它读取到内存中的时候呢,就需要指定一下解码方式啦,就像这样:filename. decode(“gbk”)

Python中的编码问题

python中字符串编码方式为unicode

在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言。这里,我重现这句话:在python中,字符串是以Unicode编码的。这句话的一个重要的地方是:字符串,例如:

print(“这句话是使用Unicode编码的,支持多语言,比如English.”)
这句话是使用Unicode编码的,支持多语言,比如English.

解释:print函数输出的这句话在python里是使用Unicode编码的(当然它此时也在内存中,因为它现在正被加载着嘛)

Python中传输时转为utf-8

那Unicode编码方式用得好好的,可以直接混合输出英文和中文等多种语言,换成ctf-8输出字符只有英文能让我们看懂,中文变成了难以分辨的十六进制(\xe8\xbf\x99\xe5\x8f\xa5\xe8…),我们为什么还要有utf-8编码方式呢?
想到这个问题说明你已经get到点了。你想,utf-8编码方式的优点是社么?
就是省内存
那么,由于Python的字符串类型是str,在内存中以Unicode编码的,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把Unicode编码的str变为以字节为单位的bytes,而通过utf-8编码或者ASCII码编码生成的结果就是以字节为单位的bytes。
这句话这么长无非就重复一个观点:

python中的str是以Unicode编码的(注意,既然我们能看到str,说明这个python文件已经被打开了,即已经加载到内存上),如果要在网络上传输,或者保存到磁盘上,就得转换为utf-8编码方式。

Example

>>> 'I love computer'.encode('ascii')
b'I love computer'

解释:由于’I love computer’是纯英语,所以可以用ASCII编码。
再看:‘I love computer’和’b’I love computer’'有什么不同?没错,多了一个b。这个b大有玄妙之处:

'I love computer’是python中的str,是以Unicode方式编码的。
‘b’I love computer’'也是python中的str,但它是以ASCII码编码的。
那能不能用utf-8编码’I love computer’呢?答案显然(ASCII编码实际上可以被看成是UTF-8编码的一部分):

>>> 'I love computer'.encode('utf-8')
b'I love computer'

好了,前面是对纯英文的str进行编码,那对中文的str编码呢?可以对中文的str进行utf-8编码,不能进行ASCII码编码(为什么呢?自己想吧):

>>> '我喜欢计算机'.encode('utf-8')
b'\xe6\x88\x91\xe5\x96\x9c\xe6\xac\xa2\xe8\xae\xa1\xe7\xae\x97\xe6\x9c\xba'
>>> '我喜欢计算机'.encode('ascii')
Traceback (most recent call last):File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

编码以及Python中的编码相关推荐

  1. python安全编码问题_浅谈Python中的编码问题

    对于Python的初学者来说,编码问题相当令人头疼.本文就根据我在学习过程中遇到的问题简单谈一下Python中的编码.首先简单介绍一下几种常见的编码. 一.几种常见的字符编码 ASCII码 ASCII ...

  2. 浅谈Python中的编码规则

    注:本人用Python3.4作为学习版本,以下学习心得只适用于Python3.4. 之前拜读了金角大王Alex关于编码的解答,收获颇多.特此致谢,以下仅谈一谈作为一个初学者,对编码的理解. 我所了解的 ...

  3. python编码解码单词_在使用w2v时python中的编码问题

    我正在使用word2vec模型在python中编写我的第一个应用程序. 这里是我的简单的代码在使用w2v时python中的编码问题 import gensim, logging import sys ...

  4. python中的编码问题

    Python 中的编码问题 在python中遇到编码问题主要来自于ASCII和gbk两个方面.win中python为unicode 编码而控制台一般为gbk编码 ASCII 对于ASCII来说,是由于 ...

  5. python采用的编码是什么意思_深入浅出地,彻彻底底地理解Python中的编码

    python处理文本的功能非常强大,但是如果是初学者,没有搞清楚python中的编码机制,也经常会遇到乱码或者decode error.本文的目的是简明扼要地说明python的编码机制,并给出一些建议 ...

  6. 站长在线Python精讲:Python中字符串编码转换encode编码和decode解码详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中字符串编码转换:encode编码和decode解码详解>.本知识点主要内容有:常用编码简介.使用encode( ...

  7. 有了这篇文章, Python 中的编码不再是噩梦

    有了这篇文章, Python 中的编码不再是噩梦 Python 中编码问题,一直是很多 Python 开发者的噩梦,尽管你是工作多年的 Python 开发者,也肯定会经常遇到令人神烦的编码问题,好不容 ...

  8. 字符编码在python中的处理与储存_python----字符编码与文件处理

    字符编码 计算机工作就要通电,也就是说'电'驱使计算机干活,而电只有高电压(二进制1),低电压(二进制0),也就是说计算机只认数字. 编程的目的就是让计算机干活,编程的结果就是一堆字符,也就是我们编程 ...

  9. python中字符编码使用_python中字符编码是什么?如何转换字符?

    屏幕前我们看到的文字,在计算机中也是这样表示吗?事实上,我们所有的信息电脑是无法直接理解的,同样我们所要表达的信息,计算机也不能看懂.这就需要架起一个理解的桥梁,也就是编码帮助我们相互之间进行翻译.今 ...

最新文章

  1. ES6 Rest参数
  2. 来自Mozilla的CSS书写规范建议
  3. 【JOURNAL】搭配/ IKEA Match
  4. 老版本的Spring应用该如何应对这次的RCE漏洞?
  5. Luogu P4916 魔力环
  6. 人脸识别大规模爆发!
  7. User status for Service Order
  8. 每个Java开发人员都必须避免的9个安全错误
  9. (计算机组成原理)第二章数据的表示和运算-第二节6:定点数除法运算(原码/补码一位除法)
  10. CCF NOI1020 数字识别
  11. combineByKey实例详解
  12. 朋友们,想去一线大厂?卷起来...
  13. orcad 16.6 关闭startpage
  14. 计算机桌面文字重影,为什么电脑屏幕上的字老是重影,该怎么调?
  15. 【CF487E】 Tourists 简易题解
  16. c++ vector基本函数、排序、查找用法
  17. 使用U盘win10家庭版本系统重装
  18. 史诗级聊天AI ChatGPT来啦!
  19. linux内核是如何实现分页机制的
  20. 华硕笔记本电脑计算机打不开,华硕笔记本电脑无线开关打不开怎么办

热门文章

  1. Presto (一) --------- Presto 简介
  2. python zipfile_详解python3中zipfile模块用法
  3. 2 行 JS 代码实现页面横向滚动特效
  4. html怎样调节背景透明度,css设置背景透明度的方法是什么
  5. 计算苹果的价格(计算物品类的价格可借鉴)
  6. 阅读《构建之法》并提问
  7. 为什么厂商做不出 1999 元的旗舰手机了?
  8. 【分享】10个帮你修图+剪辑视频+PPT制作的网站
  9. 基于dejavu的音频识别
  10. 音频识别算法思考与阶段性小结