16,748
社区成员
发帖
与我相关
我的任务
分享
responsejson: tstringstream;
responsejson := tstringstream.Create('', 65001);
http.post(URL ,StringList , responsejson);
Memo1.Lines.Add(responsejson.DataString);
responsejson.DataString里面的中文不是乱码了!
解决方法参考自http://blog.sina.com.cn/s/blog_549f50ec01019cgc.html。procedure TForm1.Button1Click(Sender: TObject);
var
T: TStringStream;
ts: TStringList;
SvrUrl, postUrl: string;
begin
SvrUrl := 'http://app.25hours.cc:6077/webservice/25hours.asmx/StruUp';
postUrl := '';
ts := TStringList.Create;
ts.Text := 'data={"ShopID":1,"SyncVer":200}';
T := TStringStream.Create('', tencoding.UTF8);
IdHTTP1.Post(SvrUrl + postUrl, ts, T);
Memo1.Text := T.DataString;
end;
经过测试,没有乱码
{"error":0,"msg":"表结构升级获取成功!","Count":247,"Stru":[{"ID":201,"SqlStr":"CASE"},{"ID":202,"....... t:=TStringStream.Create('',tencoding.UTF8);
idhttp1.Post(SvrUrl+postUrl,ts,t);
Result:=Utf8ToAnsi(t.DataString);或Result:=Utf8Decode(t.DataString);
或者
t:=TStringStream.Create('',tencoding.ANSI);
idhttp1.Post(SvrUrl+postUrl,ts,t);
Result:=t.DataString;
都不行,
确定网站返回的是UTF8的,在Delphi7下也是用IDHttp返回是正常的