关于Python2字符编码的体会】的更多相关文章

对于Python的字符编码问题也懵了很久,最近做爬虫多次遇到网页转码的问题,干脆彻底解决掉!Just Do it! 1.两种类型str与unicode str和unicode都是basestring的子类.严格意义上说,str其实是字节串,它是unicode经过编码后的字节组成的序列.对 UTF-8编码的str'汉'使用len()函数时,结果是3,因为实际上,UTF-8编码的'汉' == '\xE6\xB1\x89'. unicode才是真正意义上的字符串,对字节串str使用正确的字符编码进行解…
这篇文章的部分问题在Python3以后不再存在,老猿只是觉得文章的部分内容还是有参考价值,因此在此原文转发连接: Python2字符编码问题汇总…
程序员都自视清高,觉得自己是创造者,经常鄙视不太懂技术的产品或者QA.可悲的是,程序员之间也相互鄙视,程序员的鄙视链流传甚广,作为一个Python程序员,自然最关心的是下面这幅图啦 我们项目组一值使用Python2.7,虽然我们也知道Python3的诸多好处,也曾经蠢蠢欲动过,但由于各种历史原因,以及业务的压力,我们只可能继续使用Python2.7.更悲哀的是,我们组不是那么international,所以代码中还是涉及到大量的中文,因此偶尔也会遇到乱码以及UnicodeError,于是生活在了…
目录 从字符编码说起 unicode与utf-8 当编解码遇上Python2.x unicode 与 str 区别 __str__ __repr__的区别 unicode str utf-8关系 unicode.encode 与 unicode.__str__的区别 unicode gbk之间的转换 为什么print us.encode('utf-8')打印出“涓” 回答第一个问题:str类型到底是什么 unicode函数 为啥调用sys.setdefaultencoding 乱码与Unicod…
Python2.7 中文字符编码 & Pycharm utf-8设置.Unicode与utf-8的区别 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6-6 一.关于编码和乱码,有以下几个重要的概念需要搞清楚:   二.Pycharm 设置编码, 可以按如下步骤设置: Ctrl + Shift + A 搜索 encoding 把能设置成 utf-8 的地方都设置成 utf-8 想要一劳永逸,就将默认设置里的enco…
摘要:Python中文虐我千百遍,我待Python如初恋.本文主要介绍在Python2/3交互模式下,通过对中文.英文的处理输出,理解Python的字符编码与解码问题(以点破面). 前言:字符串的编码一开始是 ascii,只支持英文,由于多种语言的存在,出现万国码 unicode,但 unicode 不兼容 ascii,而且对存储空间造成浪费,所以出现 utf-8 编码,一种针对 unicode 的可变长度字符编码. Python3的字符编码与解码输出 >>> hi = b'hello,…
目录 字符编码应用之Python(掌握) 执行Python程序的三个阶段 Python2与Python3字符串类型的区别(了解) Python2 str类型 Unicode类型 Python3 字符编码应用之Python(掌握) 执行Python程序的三个阶段 Python test.py(我再强调一遍,执行test.py的第一步,一定是先将文件内容从硬盘读入到内存中) test.py文件内容以gbk格式保存的,内容为: 阶段一:启动Python解释器 阶段二:Python解释器此时就是一个文本…
python2与python3默认编码: python2:gbk                   print( u'上' )     操作系统也是 gbk    python3:unicode print( '上’ ) 字符编码转换关系: unicode -->encode (编码)-->gbk  其他形式的二进制               write gbk  其他形式的二进制 -->decode (解码)-->unicode               read 各种编码…
目录 Python2.7字符编码详解 声明 一. 字符编码基础 1.1 抽象字符清单(ACR) 1.2 已编码字符集(CCS) 1.3 字符编码格式(CEF) 1.3.1 ASCII(初创) 1.3.2 MBCS/DBCS/ANSI(本地化) 1.3.3 Unicode(国际化) 1.4 字符编码方案(CES) 1.5 中文字符乱码(Mojibake) 1.5.1 未指定编码格式 1.5.2 错误指定编码格式 1.5.3 过度指定编码格式 1.5.4 解决方案 二. Python2.7字符编码…
0. 写在前面 起因:之前写个数据预处理程序的时候遇到了点问题,用re模块的正则查找方法search时总是找不出来(找错了或者出乱码),于是捣鼓捣鼓. 经过:查资料,做实验,发现用utf8编码的str类型的字符串在search方法中行不通,因为str是字节串,和字符之间没有固定的一一对应的关系,正则没法用字节串来进行正确匹配. 结果:把正则式和目标字符串都使用unicode类型,unicode和字符之间是两个字节对应一个字符的关系,正则可以根据这个来对字符进行匹配. 后续:突然觉得应该总结一下编…
计算机基础(掌握) 启动应用程序的流程 双击qq 操作系统接受指令然后把该操作转化为0和1发送给CPU CPU接受指令然后把指令发送给内存 内存接受指令把指令发送给硬盘获取数据 qq在内存中运行 文本编辑器存取文件的原理 在文本编辑器中按下键盘中j的时候 文本编辑器和操作系统交互,把这个按下j的指令转化为0和1 操作系统发送治指令给CPU CPU把这个0和1的指令 转化为 j 然后再由显示器显示 期间发生的过程,我们称之为字符编码 Python解释器的原理 启动python解释器,python解…
一.计算机基础 计算机组成:CPU.内存.硬盘 CPU:控制程序运行(从内存中取出文本编辑器的数据存入内存) 内存:运行程序 硬件:存储数据 二.文本编辑器存取文件的原理 比如计算机只能识别0和1,文本编辑器读写数据再存储数据 三.Python解释器 01010001 --> a = 1 (所见,python解释器没有运行时提供) a = 1 -> 01010001(所得,python解释器运行时提供) 四.字符编码 二进制转化为你认识的字符 01 ab 2^1 00 01 10 11 abc…
目录 昨日回顾 二十三.元组内置方法 二十四.散列表 二十五.字典内置方法 二十六.集合内置方法 二十七.深浅拷贝 拷贝 浅拷贝 深拷贝 今日内容 二十八.字符编码 1.文本编辑器存储信息的过程 2.gb2312和gbk的区别 3.编码和解码 4.python解释器解释python代码的流程 二十九.python2和python3的编码区别 python2 python3 昨日回顾 二十三.元组内置方法 不可更改的列表,其他的和列表一摸一样 二十四.散列表 二十五.字典内置方法 乱序 pytho…
Python2和3字符编码的区别 一.字符编码应用之Python 1.1 执行Python程序的三个阶段 Python test.py(我再强调一遍,执行test.py的第一步,一定是先将文件内容从硬盘读入到内存中) test.py文件内容以gbk格式保存的,内容为: 阶段一:启动Python解释器 阶段二:Python解释器此时就是一个文本编辑器,负责打开文件test.py,即从硬盘中读取test.py的内容到内存中 此时,Python解释器会读取test.py的第一行内容,#coding:u…
目录 python2和3字符编码的区别 一.字符编码应用之python python2和3字符编码的区别 一.字符编码应用之python 1执行python的三个阶段 python test.py 执行的时候第一步是把文件从硬盘读到内存里 test.py是以gbk格式保存的 阶段一:启动py解释器 阶段二:py解释器此时就是一个文本编辑器,负责打开文件test.py,就是把文件从硬盘读到内存中 此时,py解释器会读取到test.py的第一行coding:utf-8,以此决定了用什么编码格式把代码…
目录 1. 字符编码 2. 文本编辑器存储信息的过程 3. 编码: 1. 编码的历史 2. gb2312和gbk的区别 3. 编码和解码 4. python解释器 解释代码的流程 1. 读取文本到解释器 2. 识别代码(检查语法问题) 3. 往终端打印 1. 字符编码 字符:就是存储了信息的东西 键盘发送等等是电流-->主机(内存)接收到电流(当做010101011101)-->显示屏 接收电流 (当做010101010-->键盘) 2. 文本编辑器存储信息的过程 文本编辑器-->…
目录 字符编码 文本编辑器存储信息的过程 python解释器解释python代码的流程 python解释器与文本编辑器的异同 不同编码格式存入与读取数据的过程 乱码的分析 python2和python3字符编码的区别 python2 python3 字符编码 文本编辑器存储信息的过程 打开编辑器就在内存中打开了一个进程,用编辑器编写的内容存在内存中,断电会丢失. 点击保存,编辑器把内存的数据刷到了硬盘上. 编写.py文件(没有执行时)和编写其他文件没有区别,只是在写一堆字符. python解释器…
编码 AscII码 :标准ASCII码是采用7位二进制码来编码的,最高为0,没有0000 0000,所以就是2**7-1=127个字符 , 当用1个字节(8位二进制码)来表示ASCII码时,就在最高位添加1个0.1个字节表示一个英文字母.扩充的ASCII码最高位为1,相应的十进制为1~255. 一个英文字母占一个字节 8位(bit)==一个字节(byte) 1024byte=1KB 1024kb==1MB 1024MB=1GB 1024GB==1TB Unicode:当时为了解决ASCII全球化…
第一个python程序: Hello World程序 windows命令行中输入:python,进入python交互器,也可以称为解释器. print("Hello World!") windows中 新建文本文件:d:\helloworld.py,键入: print("Hello World!"), 命令行中运行:python d:\helloworld.py linux中 编辑helloworld.py: #!/user/bin/env python print…
***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-8就是unicode 3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string 一.python2 py2里默认编码…
本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章.有的人云亦云,也有的写得很深入.近日看到某知名培训机构的教学视频中再次谈及此问题,讲解的还是不尽人意,所以才想写这篇文字.一方面,梳理一下相关知识,另一方面,希望给其他人些许帮助. Python2的 默认编码 是ASCII,不能识别中文字符,需要显式指定字符编码:Python3的 默认编码 为Uni…
一.什么是字符编码 计算机要想工作必须通电,也就是说‘电’驱使计算机干活,而‘电’的特性,就是高低电压(高低压即二进制数1,低电压即二进制数0),也就是说计算机只认识数字 编程的目的是让计算机干活,而编程的结果说白了只是一堆字符,也就是说我们编程最终要实现的是:一堆字符驱动计算机干活 所以必须经过一个过程: 字符串--------(翻译过程)------->数字 这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码 二.字符编码分类 计算机由美国人发明,最早的字符编码为AS…
一.集合操作(set)                                                                                                                               1.定义: set集合,是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环…
在2.7环境中我们要写上这一行#-*- coding:utf-8 -*- 为什么我们要加这一行呢?这一样的意思是置顶编码类型为utf-8编码! 首先在看这个问题之前,咱们是否曾想过一个问题? 为什么我们可以在显示器上能看到这些文字.数字.图片.字符.等等信息呢?大家都知道计算机本身只能识别 0 1 的组合,他们是怎么展示这些内容的呢?我们怎么和计算机去沟通呢? 如果我们使用0 1 的组合和计算机沟通你还能看到这些内容吗?还有一个问题就是01的组合对于咱们说几乎看不懂对吧! 那怎么办?如何让计算机…
1.        集合 1.1      特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集.并集等操作. 1.2     常用操作: s = set([3,5,9,10]) # 创建一个数值集合 t = set("Hello") # 创建一个唯一字符的集合 a = t | s # 求 t 和 s 的并集 b = t & s # 求 t 和…
相关文章 Python中文编码问题:为何在控制台下输出中文会乱码及其原理 1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号.不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础. 1.2. MBCS 然而计算机世界里很快就有了其他语言,单字节…
http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html 1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号.不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础. 1.2. MBC…
1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号.不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础. 1.2. MBCS 然而计算机世界里很快就有了其他语言,单字节的ASCII已无法满足需求.后来每个语言就制定了一套自己的编码,由于单字节…
转自:http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html 1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号.不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础. 1.2.…
字符编码 在python2默认编码是ASCII, python3里默认是utf-8 unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-8就是unicode 在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string 函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 特性: 减少重复代码 使程序变的…