时间:2021-05-22
本文主要给大家介绍了关于Python中的字符串操作和编码Unicode的一些知识,下面话不多说,需要的朋友们下面来一起学习吧。
字符串类型
str:Unicode字符串。采用''或者r''构造的字符串均为str,单引号可以用双引号或者三引号来代替。无论用哪种方式进行制定,在Python内部存储时没有区别。
bytes:二进制字符串。由于jpg等其他格式的文件不能用str进行显示,所以才用bytes来表示,bytes的每个字节为一个0-255的数字。如果打印的时候,Python会把能够用ASCII表示的部分显示为ASCII,这样方便阅读。bytes几乎支持除了格式化以外的所有str的方法,甚至包括了re模块
bytearray() :二进制可原地变动的字符串。
utf-8编码范围
字节顺序标记BOM
BOM是byte order marker的缩写,
指定编码写入时的规则
Python在使用'utf-8'编码写入文件时不会写入BOM头,但是如果指定编码'utf-8-sig'则会迫使Python写入一个BOM头。
使用'utf-16-be'不会写入一个BOM头,但是采用'utf-16'则会写入一个BOM头。
>>> open('h.txt','w',encoding='utf-8-sig').write('aaa')3>>> open('h.txt','rb').read()b'\xef\xbb\xbfaaa'>>> open('h.txt','w',encoding='utf-16').write('bbb')3>>> open('h.txt','rb').read()b'\xff\xfeb\x00b\x00b\x00'>>> open('hh.txt','w',encoding='utf-16-be').write('ccc')3>>> open('hh.txt','rb').read()b'\x00c\x00c\x00c'>>> open('h.txt','w',encoding='utf-8').write('ddd')3>>> open('h.txt','rb').read()b'ddd'读取时的规则
如果指定了正确的编码,那么BOM会忽略,否则BOM会显示为乱码或者返回异常。
>>> open('h.txt','r').read()'锘縟dd'>>> open('h.txt','r',encoding='utf-8-sig').read()'ddd'编码与解码
'\xhh':用2位十六进制来表示一个字符
'\uhhhh':用4位十六进制来表示一个字符:
'\Uhhhhhhhh':用8位十六进制来表示一个字符
>>> s = 'py\x74h\u4e2don' #'pyth中on'
str和bytes, bytearray进行转换
str.encode(encoding='utf-8')
bytes(s,encoding='utf-8')
bytes.decode(encoding='utf-8')
str(B, encoding='utf-8')
bytearray(string, encoding='utf-8')
bytearray(bytes)
文档编码声明
Python默认使用utf-8编码。
# -*- coding: latin-1 -*- :表示声明文档为latin-1编码。
帮助函数
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在最新的Python3版本中,字符串是以Unicode编码的,即Python的字符串支持多语言编码和解码 字符串在内存中以Unicode表示,在操作字符串时,
字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Un
对于python2.7字符串在Python2.7内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符
Java判断字符串中是否包含中文的实例详解Java判断一个字符串是否有中文是利用Unicode编码来判断,因为中文的编码区间为:0x4e00--0x9fbb,不
u:表示unicode字符串不是仅仅是针对中文,可以针对任何的字符串,代表是对字符串进行unicode编码。一般英文字符在使用各种编码下,基本都可以正常解析,所