Не удалось декодировать содержимое ответа с помощью IdHttp
Я использую TIdHttp для получения веб-контента. Заголовок ответа указывает кодировку контента, которая должна быть utf8. Я хочу напечатать контент в консоли как CP936 (упрощенный китайский), но фактический контент не читается.
Result := TEncoding.Utf8.GetString(ResponseBuffer);
Я делаю то же самое в Python (используя httplib2) без каких-либо проблем.
def python_try():
conn = httplib2.HttpConn()
respose, content = conn.get(...)
print content.decode('utf8') # readable in console
ОБНОВЛЕНИЕ 1
Я отладил необработанный ответ и заметил, что содержимое распаковано.
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Content-Encoding: gzip
Vary: Accept-Encoding
Date: Mon, 24 Dec 2012 15:27:44 GMT
Connection: Keep-Alive
Я попытался назначить экземпляр IdCompressorZLib экземпляру IdHttp. К сожалению, приложение будет аварийно завершать работу при распаковке сжатого содержимого. Тестовый адрес "HTTP \: //www.baidu.com» (Кодирующий = GB2312).
ОБНОВЛЕНИЕ 2
Я также попытался загрузить файл сценария jquery, содержащий только символы ascii. На этот раз это работает, что означает быть проблемой библиотеки Indy. Если я не ошибаюсь, я должен закрыть вопрос.