中国电脑的windows 的默认编码是gbk. "记事本"是gbk, 和windows的编码一样.
linux 的默认编码是utf-8
苹果OS的默认编码是utf-8.
str 字符串在内部的默认编码是 unicode
# 英文
str: 表现形式'alex'
内部编码: 字符串str-> 'unicode'
bytes:
表新形式 b'alex' # 英文不会变型
内部编码: 非unicode
# 中文:
str: 表现形式: '琪琪'
内部编码m:字符串, 还是unicode
bytes:
表现形式: b'xe7x90xaaxe7x90xaa' # 中文转bytes会变型到十六进制
内部编码:非unicode, 我用的是utf-8
# s = 'alex'
# b1 = s.encode('utf-8')
# print(b1) #b'alex'
s1 = "琪琪"
b2 = s1.encode('utf-8') # 中文字符串的unicode 转成utf-8的bytes类型
print(b2) # b'xe7x90xaaxe7x90xaa'
# 把utf-8的bytes类型转换成字符串
b1 = b'xe7x90xaaxe7x90xaa'
s = b1.decode("utf-8")
print(s) # 得到"琪琪"
bytes
s1 = 'alex'
b1 = b'alex'
print(b1,type(b1))
print(b1.upper())
s1 = '太白'
unicode ---> gbk 字符串 ---> gbk编码方式的bytes
b1 = s1.encode('gbk') # 编码
s2 = b1.decode('gbk') # 解码
print(s2)
s2 = '太白'
unicode ---> utf-8 字符串 ---> utf-8 编码方式的bytes
b2 = s2.encode('utf-8')
s3 = b2.decode('utf-8')
print(s3)
gbk ---> utf-8
b1 = b'xccxabxb0xd7' # gbk编码的bytes类型
s = b1.decode('gbk')
b2 = s.encode('utf-8') # utf-8编码的bytes类型
print(b2)
s1 = 'いらないよ'
b = s1.encode('shift_jis') #
s2 = b.decode('shift_jis')
# print(b)
print(s2)