decode与encode解码问题

在python中unicode中的type为str,gbk/utf-8的类型为byte,如下图

unicode,utf-8,gbk之间的转换,需要先转为unicode

核心是不管怎么转都要先转换成unicode,因此需要解码decode先。utf-8 <---> unicode <---> gbk

转换例子:

s=u'小明'

#编码为utf-8

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

#变为为gbk,先解码为unicode,再编码

s_gbk = s_utf.decode('utf-8').encode('gbk')

结果如下图所示,utf-8一个中文占3个字节,gbk两个字节

2.解决error:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 0

Python 编码中编码解码的问题,我这个错误就是‘utf-8’不能解码位置0的那个字节(0xa1),也就是这个字节超出了utf-8的表示范围了

解决办法:

stopwords = pd.read_csv("stopwords.txt",index_col=False,quoting=3,sep=" ",names=['stopword'],encoding='gb18030')
也就是在读取数据的时候,显式添加编码方式encoding='gb18030'

猜你喜欢

转载自blog.csdn.net/fanyao1983/article/details/89739261