Dobry sposób na uzyskanie zestawu znaków / kodowania odpowiedzi HTTP w Pythonie

Szukasz łatwego sposobu uzyskania informacji o kodowaniu / kodowaniu odpowiedzi HTTP za pomocą Pythona urllib2 lub dowolnej innej biblioteki Pythona.

>>> url = 'http://some.url.value'
>>> request = urllib2.Request(url)
>>> conn = urllib2.urlopen(request)
>>> response_encoding = ?

Wiem, że czasami jest obecny w nagłówku „Content-Type”, ale ten nagłówek zawiera inne informacje i jest osadzony w łańcuchu, który musiałbym przeanalizować. Na przykład nagłówek Content-Type zwrócony przez Google to

>>> conn.headers.getheader('content-type')
'text/html; charset=utf-8'

Mogę z tym pracować, ale nie jestem pewien, jak spójny będzie format. Jestem prawie pewien, że zestaw znaków może być całkowicie pominięty, więc musiałbym poradzić sobie z tym przypadkiem krawędzi. Jakaś operacja podziału łańcucha, aby uzyskać z niego utf-8, wydaje się niewłaściwym sposobem na zrobienie tego rodzaju rzeczy.

>>> content_type_header = conn.headers.getheader('content-type')
>>> if '=' in content_type_header:
>>>  charset = content_type_header.split('=')[1]

To jest kod, który sprawia, że ​​robi za dużo pracy. Nie jestem też pewien, czy zadziała w każdym przypadku. Czy ktoś ma lepszy sposób, aby to zrobić?

questionAnswers(5)

yourAnswerToTheQuestion