常见编码:https://blog.csdn.net/LearnLHC/article/details/115133012
设置全局为utf-8
#coding=utf-8
str和byte转换
byte->str
方法一
b = b'hello'
str1=str(b, encoding = "utf-8")
str1=str(b, encoding = "gbk")
方法二
b = b'hello'
str1=b.decode() # 第一参数默认utf8,第二参数默认strict
str->byte
str="字符串"
b=str1.encode('utf-8')
b=bytes(str, encoding='utf-8')
例子
if __name__ == '__main__':
# 在Python3中,所有的字符串都是Unicode字符串
str = "中文和特殊字符...AAAaaa*&^%"
print(type(str))
# 在Python3中,所有的字符串都是Unicode字符串,encode意思是编码为二进制(bytes)字节流
encode_str = str.encode("utf-8")
print(type(encode_str))
print(encode_str)
# chardet.detect()方法是识别bytes 对象的编码
print(chardet.detect(encode_str))
# decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回
decode_latin_str = encode_str.decode('latin1')
print(type(decode_latin_str))
print(decode_latin_str)
decode_utf8_str = encode_str.decode('utf-8')
print(type(decode_utf8_str))
print(decode_utf8_str)