요청은 응답의 인코딩을 어떻게 결정합니까?

244 소년

응답의 apparent_encoding속성이 어떻게 잘못 될 수 있습니까?

아래 코드 스 니펫이 있으며 내 질문을 보여줍니다.

import requests

url = "https://item.jd.com/100000177760.html"

r = requests.get(url)

print(r.status_code, r.encoding)  # 200, gbk (correct)

print(r.apparent_encoding)  # GB2312 (wrong)

요청은 응답의 문자 인코딩을 어떻게 결정합니까?

요청 은 응답의 Content-Type 헤더의 매개 변수 에서 인코딩을 추출 합니다 charset. charset헤더에 no 가 있고 content-type이 "text"유형 인 경우 ISO-8859-1 (latin-1)이 가정됩니다. 그렇지 않으면 응답의 apparent_encoding속성이 평가 되고의 값으로 사용됩니다 r.encoding.

apparent_encoding응답 본문의 인코딩을 추측하기 위해 chardet 라이브러리를 사용하여 결정됩니다 .

문제의 URL의 경우 인코딩은 Content-Type 헤더에 선언됩니다.

>>> r.headers['Content-Type']
'text/html; charset=gbk'

따라서 r.apparent_encoding를 실행하여 명시 적으로 액세스 할 때까지 평가되지 않습니다 print(r.apparent_encoding).

이 특별한 경우에 chardet은 잘못된 것으로 보입니다. 응답의 텍스트 속성은 gbk 코덱으로 인코딩 할 수 있지만 GB2312로는 인코딩 할 수 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

어떻게 POST 요청 후 응답 본문의 특정 변수를 얻을 것

분류에서Dev

브라우저 요청의 HTTP 버전과 서버 응답의 HTTP 버전은 어떻게 결정됩니까?

분류에서Dev

NodeJS의 요청에서 양식 필드의 배열을 어떻게 인코딩합니까?

분류에서Dev

Python의 요청 모듈을 사용하여 UTF-8로 인코딩되지 않은 파일을 업로드하려면 어떻게해야합니까?

분류에서Dev

특정 텀블러 응답을 어떻게 요청하나요?

분류에서Dev

인터넷 서버는 사설 IP의 요청에 어떻게 응답합니까?

분류에서Dev

사용자가 AJAX 요청의 응답을 보지 못하도록하려면 어떻게합니까?

분류에서Dev

Gwt에서 PHP 및 Vice Versa 로의 요청 및 응답을 어떻게 처리합니까?

분류에서Dev

Gwt에서 PHP 및 Vice Versa 로의 요청 및 응답을 어떻게 처리합니까?

분류에서Dev

웹 서비스에 대한 요청과 응답을 동일하게 인코딩해야합니까?

분류에서Dev

xterm 응답을 어떻게 디코딩합니까?

분류에서Dev

java의 chars () 스트림은 reduce와 어떻게 작동합니까? 문자 인코딩을 사용합니까?

분류에서Dev

.net의 코드 외부에서 요청 인코딩을 제어하는 방법은 무엇입니까?

분류에서Dev

비트 코인 결제 요청은 어떻게 생성합니까?

분류에서Dev

이 파일의 인코딩을 어떻게 변경합니까?

분류에서Dev

Python에서 5 개의 중첩 깊이 인 URL 인코딩 매개 변수를 사용하여 POST 요청을 보내려면 어떻게해야합니까?

분류에서Dev

VPN은 요청이 공개 인터넷 요청 (google, amazon 등) 또는 회사의 인트라넷 요청임을 어떻게 확인합니까?

분류에서Dev

파일 인코딩을 어떻게 결정합니까?

분류에서Dev

첫 번째 요청의 응답을 받기 전에 두 번째 HTTP 요청이 이루어지면 어떻게됩니까?

분류에서Dev

openAM은 인증 요청을 어떻게 처리합니까?

분류에서Dev

Flutter의 HTTP POST 요청에서받은이 JSON 응답에 어떻게 액세스 할 수 있습니까?

분류에서Dev

개조-해시 맵 gson 응답을 어떻게 정의합니까?

분류에서Dev

실제로 필요한 RAM의 양을 어떻게 결정합니까?

분류에서Dev

cURL 응답을 JSON 객체로 인코딩하려면 어떻게해야합니까?

분류에서Dev

여러 웹 사이트의 응답 코드는 어떻게 확인합니까?

분류에서Dev

프로그램은 문자열의 끝을 어떻게 결정합니까?

분류에서Dev

응답이 Alamofire 요청의 200인지 아닌 경우 seque보기를 변경하려면 어떻게해야합니까?

분류에서Dev

첫 번째 firebase 응답 next.js에 의존하는 firestore 요청을 어떻게 요청할 수 있습니까?

분류에서Dev

wget의 URL을 어떻게 인코딩 할 수 있습니까?

Related 관련 기사

  1. 1

    어떻게 POST 요청 후 응답 본문의 특정 변수를 얻을 것

  2. 2

    브라우저 요청의 HTTP 버전과 서버 응답의 HTTP 버전은 어떻게 결정됩니까?

  3. 3

    NodeJS의 요청에서 양식 필드의 배열을 어떻게 인코딩합니까?

  4. 4

    Python의 요청 모듈을 사용하여 UTF-8로 인코딩되지 않은 파일을 업로드하려면 어떻게해야합니까?

  5. 5

    특정 텀블러 응답을 어떻게 요청하나요?

  6. 6

    인터넷 서버는 사설 IP의 요청에 어떻게 응답합니까?

  7. 7

    사용자가 AJAX 요청의 응답을 보지 못하도록하려면 어떻게합니까?

  8. 8

    Gwt에서 PHP 및 Vice Versa 로의 요청 및 응답을 어떻게 처리합니까?

  9. 9

    Gwt에서 PHP 및 Vice Versa 로의 요청 및 응답을 어떻게 처리합니까?

  10. 10

    웹 서비스에 대한 요청과 응답을 동일하게 인코딩해야합니까?

  11. 11

    xterm 응답을 어떻게 디코딩합니까?

  12. 12

    java의 chars () 스트림은 reduce와 어떻게 작동합니까? 문자 인코딩을 사용합니까?

  13. 13

    .net의 코드 외부에서 요청 인코딩을 제어하는 방법은 무엇입니까?

  14. 14

    비트 코인 결제 요청은 어떻게 생성합니까?

  15. 15

    이 파일의 인코딩을 어떻게 변경합니까?

  16. 16

    Python에서 5 개의 중첩 깊이 인 URL 인코딩 매개 변수를 사용하여 POST 요청을 보내려면 어떻게해야합니까?

  17. 17

    VPN은 요청이 공개 인터넷 요청 (google, amazon 등) 또는 회사의 인트라넷 요청임을 어떻게 확인합니까?

  18. 18

    파일 인코딩을 어떻게 결정합니까?

  19. 19

    첫 번째 요청의 응답을 받기 전에 두 번째 HTTP 요청이 이루어지면 어떻게됩니까?

  20. 20

    openAM은 인증 요청을 어떻게 처리합니까?

  21. 21

    Flutter의 HTTP POST 요청에서받은이 JSON 응답에 어떻게 액세스 할 수 있습니까?

  22. 22

    개조-해시 맵 gson 응답을 어떻게 정의합니까?

  23. 23

    실제로 필요한 RAM의 양을 어떻게 결정합니까?

  24. 24

    cURL 응답을 JSON 객체로 인코딩하려면 어떻게해야합니까?

  25. 25

    여러 웹 사이트의 응답 코드는 어떻게 확인합니까?

  26. 26

    프로그램은 문자열의 끝을 어떻게 결정합니까?

  27. 27

    응답이 Alamofire 요청의 200인지 아닌 경우 seque보기를 변경하려면 어떻게해야합니까?

  28. 28

    첫 번째 firebase 응답 next.js에 의존하는 firestore 요청을 어떻게 요청할 수 있습니까?

  29. 29

    wget의 URL을 어떻게 인코딩 할 수 있습니까?

뜨겁다태그

보관