Crossin的编程教室

标题: Lesson44-查天气输出结果乱码 [打印本页]

作者: jy02225276    时间: 2017-8-18 20:56
标题: Lesson44-查天气输出结果乱码
如图,编码试过使用cp936和gbk都不行,请问是什么问题?

bug.png (274.25 KB, 下载次数: 368)

bug.png


作者: crossin先生    时间: 2017-8-19 00:28
print(content.encode('utf8'))
作者: jy02225276    时间: 2017-8-19 23:13
仍然不行,这次显示如下图,意思是不能对byte类型编码?


bug2.png (247.41 KB, 下载次数: 374)

bug2.png


作者: 周鑫鑫    时间: 2017-8-19 23:34
jy02225276 发表于 2017-8-19 23:13
仍然不行,这次显示如下图,意思是不能对byte类型编码?

建议您先到公众号回复 编码 , 查看  py3 编码知识,  了解 bytes --> str ,或者 str --> byte 的解决方案
作者: crossin先生    时间: 2017-8-20 11:38
jy02225276 发表于 2017-8-19 23:13
仍然不行,这次显示如下图,意思是不能对byte类型编码?

py3的bytes -> str 应该是 decode
作者: jy02225276    时间: 2017-8-20 22:49
周鑫鑫 发表于 2017-8-19 23:34
建议您先到公众号回复 编码 , 查看  py3 编码知识,  了解 bytes --> str ,或者 str --> byte 的解决方案 ...

谢谢!我发现似乎是链接返回的数据有问题,使用chardet无法识别是什么类型的数据。

bug3.png (407.02 KB, 下载次数: 356)

bug3.png


作者: jy02225276    时间: 2017-8-20 22:51
crossin先生 发表于 2017-8-20 11:38
py3的bytes -> str 应该是 decode

谢谢老师,又试了一遍,似乎是链接返回的数据有问题,用chardet无法识别。

bug3.png (407.02 KB, 下载次数: 361)

bug3.png


作者: crossin先生    时间: 2017-8-21 16:09
jy02225276 发表于 2017-8-20 22:51
谢谢老师,又试了一遍,似乎是链接返回的数据有问题,用chardet无法识别。 ...

关于gzip压缩,查天气的帖子里有说这个乱码怎么处理

或者你直接改用 requests 库来做更方便
作者: jy02225276    时间: 2017-8-22 22:37
crossin先生 发表于 2017-8-21 16:09
关于gzip压缩,查天气的帖子里有说这个乱码怎么处理

或者你直接改用 requests 库来做更方便 ...

谢谢老师,参考老师的回答和第三方资料,问题已解决。
方法一带入gzip模块和方法二采用requests模块都成功了。
一开始还担心是数据源有问题,最后还是运用方法的问题。

附上参考资料供后面的同学解决此问题。
1、 如何解决“Python 3.6中 'utf-8' codec can't decode byte invalid start byte?”(即Bytes的导入问题)
https://segmentfault.com/q/1010000008631001
2、BytesIO与StringIO的异同
https://www.zhihu.com/question/49102468
3、安装requests模块的方法
http://www.jb51.net/article/80959.htm(即命令行输入pip install requests即可自动安装





查天气成功-导入gzip模块方法.png (332.52 KB, 下载次数: 364)

导入gzip模块的方法

导入gzip模块的方法

查天气成功.png (309.2 KB, 下载次数: 351)

采用requests模块的方法

采用requests模块的方法






欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5