全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2297
推到 Plurk!
推到 Facebook!

请教Delphi2010中使用Idhttp Post 中文乱码(Indy10.5.5)

缺席
allen-86
一般會員


發表:28
回覆:44
積分:19
註冊:2008-02-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-07-19 16:28:49 IP:114.238.xxx.xxx 訂閱
纯英文是没有问题的,返回值如果是有中文也能正确接收、显示。
但是一有中英文或者中文post的时候,经WPE查看发出的封包为几个问号(?????)。
代码如下:
procedure TForm1.btnTextClick(Sender: TObject);
var
htp:TIdHTTP;
sUrl,sname:string;
iLen:Int64;
//sPostData:TIdMultiPartFormDataStream; //准备试这种类型,但是不知道怎么弄,
//参数是:'{"strName":"' edtLogName.Text '","type":"L"}'

sPostData:TStringList;
begin
sUrl :='http://xxx.xxx.xxx/ajaxpro/Register,App_Web_register.aspx.cdcab7d2.ashx ';
sname:='{"strName":"' edtLogName.Text '","type":"L"}';
iLen:=Length(sname);
htp:=TIdHTTP.Create(nil);
htp.ProtocolVersion:=pv1_1;
htp.HTTPOptions:=[hoForceEncodeParams,hoKeepOrigProtocol];//强制使用HTTP 1.1
with htp.Request do
begin
Host:='xxx.xxx.xxx';
UserAgent:='Mozilla/5.0';
AcceptLanguage:='zh-cn,zh;q=0.5';
AcceptEncoding:='gzip,deflate';
AcceptCharset:='GB2312,utf-8;q=0.7,*;q=0.7';
Connection:='keep-alive';
ContentType:='text/plain; charset=utf-8';
Referer:='http://reg.51v.cn/';
ContentLength:=iLen;
Pragma:='no-cache';
CacheControl:='no-cache';
CustomHeaders.Add('X-AjaxPro-Method: CheckUserTIdMultiPartFormDataStream.Create;
sPostData:=TStringList.Create;
sPostData.Text :=sname;
sname:=htp.Post(sUrl,sPostData);
memo1.Text :=sname;
htp.Disconnect;
htp.Free;
sPostData.Free;
end;

症状:1.edtLogName.Text=‘ab123’ 是ok的
2.edtLogName.Text=‘测试’ 查看WPE封包为几个问号

多谢各位
------
The empty vessels make the greatest sound.
編輯記錄
allen-86 重新編輯於 2010-07-19 16:31:39, 註解 無‧
系統時間:2017-10-23 10:22:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!