Python字符与编码(学习笔记)

概述

在这里插入图片描述

字节与文本的编码、解码

在这里插入图片描述
在这里插入图片描述
ASCII、UTF8等常用字符串编码

ord('A')        #查询A的代码点

chr(104)        #查询104对应的字符

chr(202)        #拉丁码202对应的字符

ord('王')

ord('20248')
s1 = 'ABCD'

s1.encode('ASCII')        #b'ABCD'

s2 = '啊哦'

s2.encode('ASCII')        #UnicodeEncodeError

s2.encode('UTF-8')        #b'\xe5\x95\x8a\xe5\x93\xa6'

s2.encode('UTF-16')        #b'\xff\xfeJU\xe6T'

b1 = b'\xe5\x95\x8a\xe5\x93\xa6'

b1.decode('UTF-8')        #'啊哦'

b1.decode('UTF-16')                #'闥\ue58aꚓ'(乱码)
    
s3 = '哦啊'
s3.encode()               #b'\xe5\x93\xa6\xe5\x95\x8a'默认使用utf-8

#查看电脑默认的编码方式
#import sys
#sys.getdefaultencoding()


             
open('data.txt', 'w',encoding='utf8').write('啊哦')    #创建data.txt文件
open('data.txt', 'r',encoding='utf8').read()            #读data.txt文件
open('data.txt', 'rb').read()                            #以字节形式读取

bytes('abc', 'ascii')

types('啊哦', 'utf8')



open('data2.txt', 'w').write('啊哦')                    #记事本打开data2.txt文件内容乱码 (默认GBK编码)

open('data2.txt', 'r', encoding'gbk').read()        #'啊哦'
encode、decode默认utf-8。以文件形式操作默认为GBK

类型转换

在这里插入图片描述
bytes,str,bytearray之间的相互转换

open('data.txt', 'rb').read()                            #以字节形式读取

bytes('abc', 'ascii')

types('啊哦', 'utf8')

bytes([55, 66])                                            #b'7B'

b = b'abc'                                                #将字节赋值给b

b[0]                                                                                                #'a'

s1 = 'abc'
s2 = '啊哦'
ba = bytearray(s1, 'utf8')

ba                                             #bytearray(a'abc')

ba[0]                                            #97
ba[0] = 98
ba                                                #bytearray(b'bbc')
ba.append(100)
ba                                                #bytearray(b'bbcd')

ba + b'C\n'                                        #bytearraay(b'bbcdC\n')

ba.decode()                                        #'bbcd'        解码

BOM处理

在这里插入图片描述

#假设
open('data.txt', 'r',encoding='utf-8').read()        #返回'\ufeff啊哦'(含有字节顺序标记)
#但是文本文件内容为啊哦
open('data.txt', 'r',encoding='utf-8-sig').read()        #返回'啊哦'


open('data3.txt', 'w', encoding='utf-8-sig').write('啊哦哦')        #创建一个含有字节顺序标记的文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值