python3.7 中文编码_Python3.7之字符编码

一、编码与解码

1.编码

str.encode(encoding='UTF-8',errors='strict'),返回编码之后的字节串。

s = '你好世界'

s_utf8 = s.encode('utf-8')

print(s_utf8)

b'\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\x96\xe7\x95\x8c'

其中,b' '代表bytes类型字节串,以16进制形式表示 ,2个16进制数构成一个byte。

py3 文件的默认编码是utf-8,py2文件的默认编码是ASCII码,pycharm 默认加载文件都是用utf-8编码。

2.解码

str.decode(encoding='UTF-8',errors='strict'),返回解码之后的字符串。

print(s_utf8.decode('utf-8'))

你好世界

二、编码转换

Windows默认文件编码方式为gbk,mac与Linux默认文件编码方式为utf-8,在用记事本打开不同系统下的文件时,会出现乱码,故要进行编码转换。

编码转换方式: gbk --->unicode --> utf-8

Unicode为万国码,与所有编码方式之间均有映射关系,utf-8为Unicode的简化版本。其中gbk用三个字节表示一个中文字符,Unicode用两个字节表示一个中文字符。

1.用pycharm进行编码转换

with open(file='你好世界.txt', mode='r', encoding='gbk') as f:

s = f.read()

print(s)

print(type(s))

你好世界

2.用编程方式进行编码转换

转换原则:gbk(bytes字节)--->Unicode(str) --->utf-8(bytes字节)

以二进制形式打开(读取)文件的操作:

with open(file='你好世界.txt', mode='rb') as f:

s = f.read()

print(s)

print(type(s))

b'\xc4\xe3\xba\xc3\xca\xc0\xbd\xe7'

编码转换操作

f = open(file='你好世界.txt', mode='rb')

s = f.read()

f.close()

s_unicode = s.decode('gbk') # 转成Unicode

s_utf8 = s_unicode.encode('utf-8') # 编码成utf-8

with open(file='你好世界.txt', mode='wb') as f:

f.write(s_utf8)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值