Ищете простой способ получить информацию о кодировке/кодировании ответа HTTP с помощью Python urllib2 или любой другой библиотеки Python.
>>> url = 'http://some.url.value'
>>> request = urllib2.Request(url)
>>> conn = urllib2.urlopen(request)
>>> response_encoding = ?
Я знаю, что он иногда присутствует в заголовке Content-Type, но этот заголовок имеет другую информацию, и он встроен в строку, которую мне нужно будет анализировать. Например, заголовок Content-Type, возвращаемый Google,
>>> conn.headers.getheader('content-type')
'text/html; charset=utf-8'
Я мог бы с этим справиться, но я не уверен, насколько совместим формат. Я почти уверен, что возможно, что кодировка будет отсутствовать целиком, поэтому мне придется обрабатывать этот край. Некоторая операция разделения строк, чтобы вывести "utf-8" из этого, кажется, что это должен быть неправильный способ сделать это.
>>> content_type_header = conn.headers.getheader('content-type')
>>> if '=' in content_type_header:
>>> charset = content_type_header.split('=')[1]
Это тот код, который чувствует, что он слишком много работает. Я также не уверен, что он будет работать в каждом случае. У кого-нибудь есть лучший способ сделать это?