我用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
我调试的原始响应,发现内容gzip压缩。
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实例。 不幸的是,虽然解压缩gzip压缩内容的应用程序会崩溃。 测试地址为 “http \://www.baidu.com”(编码= GB2312)。
更新2
我也试着下载一个压缩的jQuery脚本文件,其中只包含ASCII字符。 这一次,它的工作原理,这意味着要印库的问题。 如果我没有错,我应该关闭的问题。