gb18030与utf-8

    今天在跟着嵩天老师学习词云模块的过程中遇到了编码问题:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1:invalid start byte。百度之后,发现如下两种方法:

一、把编码方式utf-8 修改为gb18030

二、把原来的txt文件重新打开另存为的时候,把编码方式修改为utf-8,然后代码的encoding=‘utf-8’保持不变即可

我都跟着做了,两种都成功了,代码和效果如下,还不错!

 1 #GovRptWordCloudv1.py
 2 import jieba
 3 import wordcloud
 4 
 5 f = open("新时代中国特色社会主义.txt",'r',encoding = "gb18030")
 6 f = open("新时代中国特色社会主义.txt",'r',encoding = "utf-8")
 7 t = f.read()
 8 f.close()
 9 ls = jieba.lcut(t)
10 txt = " ".join(ls)
11 w = wordcloud.WordCloud(font_path = "msyh.ttc",width =1000,height = 700,background_color = 'white')
12 w.generate(txt)
13 w.to_file('grwordcloud1.png')

然后,顺便又查了gb18030与utf-8二者的区别:
        1.UTF-8:即国际通用字符编码,该编码方式囊括了世界各个国家及地区使用的字符集,尤其是对于英文字母的表示方法仅占用一个字节,很好的支持了欧美等国家的需要。优点:为了统一世界上各种编码而设计,通用性强。缺点:为了兼顾世界所有语言的字符,必须采用多位给字符编号,例如中文字符采用3字节编码方式,二gb18030采用2字节。

        2.gb18030:是新出的国家标准。这个标准由国家强制执行(也是为了保证中国信息业的地位,以及争取一定的主动权),所以所有在中国大陆销售的操作系统必须支持gb18030。现在的Gb18030不仅包含了简体和繁体汉字,支持中国少数名族文字,还包含了日韩等国的象形文字。优点:兼容性好,与以前的国标码都兼容。缺点:对英文字母需要2个字节的编码。

原文地址:https://www.cnblogs.com/fsy12604/p/9887398.html