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();
我的经验是直接这两个函数就够用了。
[解决办法]
在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">。