读书人

idhttp乱码有关问题

发布时间: 2013-09-05 16:02:06 作者: rapoo

idhttp乱码问题
本帖最后由 beizidream 于 2013-08-08 10:51:20 编辑 由于网页有很多编码,所有我直接用MemoryStream获取网页内容


res,errs : TMemoryStream;
begin
res := TMemoryStream.Create;
try
idhtp.Post(url, postdata, res);
Result := res;
except
on e:Exception do begin
errs := TMemoryStream.Create;
StringToStream(e.Message , errs);
Result := errs;
raise Exception.Create(e.Message);
end;
end;

然后再用TStringStream来实现代码转化

resultss := TStringStream.Create('', TEncoding.UTF8);
resultss.Write(contentbytes[0], endpos-startpos);

但是只要是有中文,结果完全就不对了,乱码得很严重,

我想不管什么编码,统统直接用转换成utf8好处理,求帮助 编码 乱码 Delphi
[解决办法]
网站不是utf-8编码的?
[解决办法]
AnsiToUtf8();
Utf8ToAnsi();
我的经验是直接这两个函数就够用了。
[解决办法]
引用:
我用的是delphiXE, 程序里面我得用 ansistring 吗
在2010以后 好像默认的是widestring
[解决办法]
判断response content编码的方法
1. response header的Content-Type,现在规范的网站都会是text/html; charset=xxxx这种格式了。

2. 通过html的meta标签,xml的encoding属性等。比如<Meta http-equiv="Content-Type" Content="text/html; charset=gb2312">。

读书人网 >.NET

热点推荐