>  Q&A  >  본문

字符编码 - python使用split(‘中文字符’)出错

根据网页所给的字符编码将其字节数据decode('gb2312')
用的是scrapy,从给出的url获取body

def parse(self, response):
    body = response.body.decode('gb2312')
    print(body)    
    学分:1.5 # body就是这样之类的,中间的冒号是中文的冒号
    # 想弄成的效果就是['学分','1.5']
    body = body.split(':') # 就这样使用中文的冒号符来分割,但是出错
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xa3 in position 0: invalid start byte

请问怎么解决?

PHP中文网PHP中文网2741일 전1023

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

  • 大家讲道理

    大家讲道理2017-04-18 09:06:39

    으아악

    위 오류를 다시 보니 byte 0xa3
    이라 터미널에서 여러번 시도해보니 콜론 gb2312 encode

    를 발견했습니다. 으아악

    그러므로 Python은 기본 utf-8을 사용하여 gb2312의 본문을 디코딩해야 합니다. 따라서 제가 생각할 수 있는 한 가지 방법은 첫 번째 줄에 있는 명령문인 기본 인코딩 값을 수정하는 것입니다. # -*- coding: gb2312 -*-
    그럼 수술 성공인데 다른 방법은 없나요?

    회신하다
    0
  • 迷茫

    迷茫2017-04-18 09:06:39

    파이썬3

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:06:39

    디코딩 후 본문은 유니코드로 인코딩되어야 하며 다음 방법을 사용하세요.

    으아악

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 09:06:39

    또 다른 인코딩 문제는 인간-컴퓨터 상호 작용을 위한 문자 인코딩 및 5분 안에 Python 문자 인코딩 패배를 참조할 수 있습니다.

    으아악

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