admin管理员组文章数量:1611205
python中文编码问题
# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-
import chardet
a = '子系统'
print a, len(a), chardet.detect(a)
b = '子系统'.decode('utf-8').encode('gb2312')
print b, len(b), chardet.detect(b)
c = u'子系统'
print c, len(c)
d = '子系统'.decode('utf-8').encode('gbk')
print d, len(d), chardet.detect(d)
瀛愮郴缁?9 {'confidence': 0.87625, 'language': '', 'encoding': 'utf-8'}
子系统 6 {'confidence': 0.6826397542769941, 'language': 'Russian', 'encoding': 'KOI8-R'}
子系统 3
子系统 6 {'confidence': 0.6826397542769941, 'language': 'Russian', 'encoding': 'KOI8-R'}
由此可知,从返回的字节的长度来说:
一个中文字 utf-8编码 占 3个字节
一个中文字 gb2312编码 占 2个字节
一个中文字 unicode编码 占 1个字节
一个中文字 gbk编码 占 2个字节
所以gbk和gb2312 比较难区分,这个需要自己在遇到编码问题的时候,自己尝试吧。
本文标签: CodecDecodeUnicodeDecodeErrorbyteInvalid
版权声明:本文标题:UnicodeDecodeError: ‘utf8‘ codec can‘t decode byte 0xd3 in position 3: invalid continuation byte 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728607570a1165649.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论