编码 - Python 3.6中 'utf-8' codec can't decode byte invalid start byte?
PHP中文网
PHP中文网 2017-04-18 10:25:17
0
4
1056

Python 3.6中,网页信息解析失败,试了很多种编码,查看网页的编码方式也是utf-8。
错误信息:'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte?
还有就是第一个print终端里打印出来的unicode内容是[b'\x1f\x8b\x08\x00\x...]这种格式的,之前也有过这种情况,一个print打2个变量,就是b'\x, 如果分来2行打又变回了汉字。是因为什么原因呢?

# -*- coding: utf-8 -*-
import json , sqlite3
import urllib.request

url = ('http://wthrcdn.etouch.cn/weather_mini?city=%E4%B8%8A%E6%B5%B7')
resp = urllib.request.urlopen(url)
content = resp.read()

print(content)
print(type(content))
print(content.decode('utf-8'))
PHP中文网
PHP中文网

认证0级讲师

全員に返信(4)
阿神

Webサイトを見ると返ってきたデータはgzip圧縮されたデータなのでデコードする必要があります

リーリー

いいねを押す +0
伊谢尔伦

リクエストの使い方は簡単ではないですか?

いいねを押す +0
伊谢尔伦

requestet の使用をお勧めします。コードは次のとおりです:

リーリー
いいねを押す +0
阿神

これは文字エンコーディングの問題ではありません。リクエストした応答ヘッダーを確認してください

リーリー

標準ライブラリを使用する場合は、それを解凍する必要があります

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート