socket建立之数据格式转化unicode-encode

本文介绍了在Python3中如何进行字符串与字节之间的编码解码操作,特别是针对socket通信时的数据转换。讲解了从str到bytes的编码过程,包括使用encode()和bytes()方法,以及从bytes到str的解码过程,使用decode()和str()方法。同时,给出了UTF-8和GBK编码的示例,强调了编码规则的一致性在解码过程中的重要性。
摘要由CSDN通过智能技术生成
一、基本概念
1)编码:把字符串str转换成用于存储或传输的字节序列bytes
2)解码:把字节序列bytes转换成人类可读的文本字符串str

二、python3里面内置了两种基本数据类型:
1)str 数据类型----以unicode(万国码)编码存储
2)bytes 数据类型----以十六进制形式存储

三、编码解码方式:
由于socket通信的发送和接收都只接收bytes类型数据,而实际传过去的可能是str类型,所以系统需要对数据进行编码和转码

1)str>>>bytes:编码
方法1:字符串数据.encode(编码规则)
eg:
s=“hello”
bt=s.encode("utf-8")  #采用utf8编码规则将str类型数据转换为byte类型数据

方法2:bytes(字符串数据,编码规则)
eg:
s="hello"
bt=bytes(s,"utf8") #采用utf8编码规则将str类型数据转换为byte类型数据


2)bytes>>>str:解码
方法1:字符串数据.decode(编码规则)
eg:
bt=bytes("welcome 袁","utf8")
s=bt.decode("utf-8")  #采用utf8编码则对应解码也应该采用utf8.否则会出现解码错误情况

方法2:str(bytes类型数据,编码规则)
eg:
bt=bytes("welcome 袁","utf8")
s=str(bt,"utf8") #采用utf8编
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值