读书人

idhttp.get中文乱码解决方案

发布时间: 2012-05-22 18:18:54 作者: rapoo

idhttp.get中文乱码
UTF8Decode(IdHTTP1.Get(
'&un='
'&pwd='
'&Cnt=' //主要是这里为中文
'&Mobiles=
'&IsSign='
'&Schdate=
'&Schtime=
'&IsLong='

等等之类的参数

提交的英文参数没有问题

但提交中文字符的时候,在服务器上查看显示的是[??????]

是怎么回事,应该如何解决



[解决办法]
用wpe看看http访问时的head信息,然后根据那个新,去填写idhttp的发送信息
[解决办法]
看你http服务器怎么解析。。像百度是转成编码字符串发。。就是那种一个汉字转成类似%23%43那种码。。
POST和GET都会发送。。对于你的问题要点来说并没本质区别。。。
[解决办法]

Delphi(Pascal) code
function EnCodeUtf8URLStr(sUtf8Str:string; sSplit:string='%'):string;var  I, iLen:Integer;  sText: PChar;  sTmp: string;begin  Result := '';       iLen := Length(sUtf8Str);  sText := AllocMem(iLen*2+1);  BinToHex(PChar(sUtf8Str), sText, iLen);  sTmp := string(sText);  FreeMem(sText);  if sSplit='' then  begin    Result := sTmp;  end  else  begin    iLen := Length(sTmp);    for I:=1 to iLen do    begin      if ((I-1) mod 2) = 0 then        Result := Result+sSplit;      Result := Result + sTmp[I];    end;  end;end;..............................试试吧。。这是我之前用的。。试看看。。主要意思就是这个。。具体编码再看看要不要修改sTmp:=EnCodeUtf8URLStr(Utf8Encode(sTmp));UTF8Decode(IdHTTP1.Get('&un='   '&pwd='   '&Cnt='+sTmp+ '&Mobiles='&IsSign=''&Schdate='&Schtime='&IsLong=')
[解决办法]
探讨
引用:
Delphi(Pascal) code

function EnCodeUtf8URLStr(sUtf8Str:string; sSplit:string='%'):string;
var
I, iLen:Integer;
sText: PChar;
sTmp: string;
begin
Result := '';
iLen := L……

[解决办法]
这个是URL参数用现成的URLEncode就行了

读书人网 >.NET

热点推荐