Uma boa maneira de obter o charset / codificação de uma resposta HTTP em Python

Procurando por uma maneira fácil de obter as informações de charset / codificação de uma resposta HTTP usando o Python urllib2 ou qualquer outra biblioteca Python.

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

Eu sei que às vezes está presente no cabeçalho 'Content-Type', mas esse cabeçalho tem outras informações, e é incorporado em uma string que eu precisaria analisar. Por exemplo, o cabeçalho Content-Type retornado pelo Google é

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

Eu poderia trabalhar com isso, mas não tenho certeza de quão consistente o formato será. Tenho certeza que é possível que o charset esteja totalmente ausente, então eu teria que lidar com esse caso extremo. Algum tipo de operação de divisão de strings para obter o 'utf-8' parece ser a maneira errada de fazer esse tipo de coisa.

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

Esse é o tipo de código que parece estar fazendo muito trabalho. Eu também não tenho certeza se isso funcionará em todos os casos. Alguém tem uma maneira melhor de fazer isso?

questionAnswers(5)

yourAnswerToTheQuestion