我用IDHTTP控件的GET事件发短信,用DELPHI2010的话,信息内容中的汉字都不正常,手机收到的汉字都变成?号了。如果用DLEPHI7就没事。源代码如下:
sendstr:='http://125.35.1.37:20004/shttp.recmt?ua='+smsname+'&pw='+smspsw+'&mobile='+smb+'&msg='+sm;
memo2.Lines.Add(sendstr);
Regstr:=idhttp.Get(sendstr);同样是上面这段代码,结果就不同了,请问是什么原因啊?怎么解决?
sendstr:='http://125.35.1.37:20004/shttp.recmt?ua='+smsname+'&pw='+smspsw+'&mobile='+smb+'&msg='+sm;
memo2.Lines.Add(sendstr);
Regstr:=idhttp.Get(sendstr);同样是上面这段代码,结果就不同了,请问是什么原因啊?怎么解决?
Regstr:=idhttp.Get(sendstr);
主要就是上面这两句,其中smsname,smspsw,smb,sm,regstr,sendstr:string;
我试着把string改为ansistring还是不行。汉字都不能正常。在DELPHI下这样用手机就能正常收到汉字内容。
Regstr:=idhttp.Get(sendstr);
主要就是上面这两句,其中smsname,smspsw,smb,sm,regstr,sendstr:string;
我试着把string改为ansistring还是不行。汉字都不能正常。在DELPHI7下这样用手机就能正常收到汉字内容。
IDHTTP1.Response.Charset:='GB2312';
IdHTTP1.URL.URLEncode('http://www.ayandy.com/images/多云转阴.gif');
sendstr:='http://125.35.1.37:20004/shttp.recmt?ua='+smsname+'&pw='+smspsw+'&mobile='+smb+'&msg='+sm;
Regstr:=mainform.idhttp.Get(sendstr);
sendstr := IdHTTP1.URL.URLEncode(sendstr);
Regstr:=mainform.idhttp.Get(sendstr);
sendstr:=mainform.IdHTTP.URL.URLEncode(sendstr);
Regstr:=mainform.idhttp.Get(sendstr);
接收的话将IDHTTP设置一下编码:
IDHTTP1.Response.Charset:='GB2312';
Regstr:=mainform.idhttp.Get(sendstr);
这句如果用HTTPRIO的话怎么改呀
哪位知道为什么使用IDHTTP的GET时如果URL里面有汉字,服务器收到的是乱码?在D7下就正常!
使用uses httpapp
httpencode(需要Url编码的签字串);
然后再把转换后的变量加入到地址里!
比如:
Smsname:=HttpEncode('短信名字');
sendstr:='http://125.35.1.37:20004/shttp.recmt?ua='+Smsname+'&pw='+smspsw+'&mobile='+smb+'&msg='+sm;