python程序设计第8课第四章Unicode与字符串
本节课主要就是复习上节课内容,内容不多
*一个比较有意思的现象 >>>s='中' >>>type(s) <type 'str'> >>>unicode(s,encoding='ascii') 出错 >>>unicode(s) 出错 >>>unicode(s,encoding='utf-8') 出错,为什么? >>>s='中' >>>s '\xd6' 只有一个字节,不是一个合法经utf-8编码后的byte-string >>>s1=u'中' >>>s2=s1.encode('utf-8') >>>type(s2) <type'str'> >>>s '\xd6' >>>unicode(s2,encoding='utf-8') u'\xd6' 这样就可以 >>>s='中' >>>unicode(s,encoding='latin-1') u'\xd6' 可见python默认编码方式不是utf-8,是latin-1
8.理解python2.7中str和unicode的区别
*编码和解码方式要一致
二者引号前是否有前缀u是书写,表示时的表象,str与unicode更本质的区别是str表示8位文本(8-bit string)和二进制数据。unicode表示Unicode文本(Unicode string)。str对象是一个"byte序列"(sequence of bytes );而unicode对象是"character序列"(sequence of characters),也可理解为sequen
ce of code-points。 character或其在Unicode中的表示形式code point只是概念上的东西。计算机存储,传输信息需要以byte形式进行,因此需要对unicode对象进行编码
9.在python2.7的源代码中使用非ascii字符
*前面加u表示unicode string,\x加两位16进制代表code point,\u加四位十六进制,\U加八位十六进制
*在python2.7源代码中使用非ascii字符,必须要声明把encoding改成utf-8,即# - * -coding:utf-8 - * -,python3不需要,python3默认encoding就是utf-8
10.读/写Unicode数据
虽然前面讲到了.encode()和.decode()方法,unicode()内置函数。但是你在真正写程序的时候你不用调用这些函数和方法,而是应该使用codecs的模块
*import codecs自己去学习下PPT,实验一做题要用到
八,python3.5与Unicode
(讲的很快,但是2与3的区别一定会考)
不再有unicode类型,Python3.5中的str类型就相当于Python 2.7中的unicode类型。类型str变成了bytes(存储byte串),unicode则变成了str,默认编码由ascii变成了utf-8
*因此str对象没有decode()方法了,bytes有decode()方法
*定义byte时前面要加b,以提醒这是个字节序列
九,正则表达式
(这个不考,自己看看)
番外:如何确定你系统中的python使用的默认编码sys.stdin.encoding sys.stdout.encoding
sys.getdefaultencoding()
可以查看当你的unicode函数不指定encoding的时候,它使用什么encoding
就是gbk的别名,GB18030和GB2312自己回去看看,应该不考
编辑于2020-4-5
修改于2020-4-26 9:19
- 在python中判断字符串是str还是unicode
- python 中的unicode与字符串
- python unicode字符串
- [Python学习笔记][第四章Python字符串]
- Python中Unicode字符串
- python3字符串编码总结str(unicode)<-->bytes
- ESL python调用C模块时传递unicode字符串报错问题解决
- python 在Unicode和普通字符串 str 之间转换
- python编码处理:unicode字节串转成中文 各种字符串举例说明
- 浙大版《Python 程序设计》题目集第四章11-20答案(自用)
- [Python学习笔记][第四章Python字符串]
- [python] 如何将unicode字符串转换为中文
- python写的crond后台任务打印包含中文字符的unicode 字符串,出现异常?
- python 解析unicode编码的字符串
- python语言程序设计(MOOC 嵩天)第四章 程序整理(0213)
- 使用python将用ASCII表示的16进制unicode编码的ASCII字符串转换为unicode字符串
- Python中Unicode字符串
- Python中Unicode字符串(转自慕课网)
- 浙大版《Python 程序设计》题目集第四章1-10答案(自用)
- python去掉 unicode 字符串前面的 u