찾다

 >  Q&A  >  본문

编码 - Python 3.6中 'utf-8' codec can't decode byte invalid start byte?

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中文网2785일 전1016

모든 응답(4)나는 대답할 것이다

  • 阿神

    阿神2017-04-18 10:27:17

    웹사이트에서 gzip 압축 데이터를 반환하는 것을 보았는데, 디코딩이 필요합니다

    으아악

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:27:17

    요청은 사용하기 쉽지 않나요?

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:27:17

    requestet을 사용하는 것이 좋습니다. 코드는 다음과 같습니다.

    으아악

    회신하다
    0
  • 阿神

    阿神2017-04-18 10:27:17

    문자 인코딩 문제는 아닙니다. 요청하신 Response 헤더를 살펴보세요

    으아악

    gzip입니다. 표준 라이브러리를 사용한다면 gzip의 압축을 풀어야 합니다

    회신하다
    0
  • 취소회신하다