indy 10.6 POST中文GB2312数据乱码

zero_3 2013-10-16 09:47:38

//定义了
t:TStringlist;
ss:TStringStream;

IdHTTP.Post('http://www.csdn.com',t,ss);


发现当表单数据有中文时(GB2312编码)post的数据中文乱码,请问如何处理?我装的是XE5自带indy 10.6
10.5时候用IdHTTP.Post('http://www.csdn.com',t,ss,TEncoding.Default)没问题新版本就报错!
...全文
3389 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zydeyu 2016-06-25
  • 打赏
  • 举报
回复
ftp.DefStringEncoding:=IndyTextEncoding_UTF8;
GoingMerry 2015-08-27
  • 打赏
  • 举报
回复
引用 10 楼 u014798180 的回复:

IdFTP1->IOHandler->DefStringEncoding=IndyTextEncoding_OSDefault;
这个会报这个错 cannot convert ‘_di_IIdTextEncoding()' to '_di_IIdTextEncoding'
IdFTP1->IOHandler->DefStringEncoding=IndyTextEncoding_OSDefault(); 改成这样 后边加个括号就可以编译通过了 但是中文还是乱码..
GoingMerry 2015-08-27
  • 打赏
  • 举报
回复
引用 10 楼 u014798180 的回复:

IdFTP1->IOHandler->DefStringEncoding=IndyTextEncoding_OSDefault;
这个会报这个错 cannot convert ‘_di_IIdTextEncoding()' to '_di_IIdTextEncoding'
请问解决此问题了么?
GoingMerry 2015-08-27
  • 打赏
  • 举报
回复
引用 5 楼 houdw2006 的回复:
我在XE5下编译原来在D7下使用Indy10.5.8的软件后,也出现不能接收汉字问题;在UdpRead中修改了字符编码方式为IndyTextEncoding_OSDefault,已经可以正确接收到汉字。(我的数据发送方是原来用BCB5编写的,应该是用GBK发送的汉字编码). var RcvStr: string; RcvStr := BytesToString(AData, 0, -1, IndyTextEncoding_OSDefault); 可以正确接收到汉字信息。试试看,不知对你的软件是否有效。
请问 UdpRead 是在哪?
123456jiihi 2015-04-25
  • 打赏
  • 举报
回复

IdFTP1->IOHandler->DefStringEncoding=IndyTextEncoding_OSDefault;
这个会报这个错 cannot convert ‘_di_IIdTextEncoding()' to '_di_IIdTextEncoding'
oushengfen 2014-08-22
  • 打赏
  • 举报
回复
IdFTP1.IOHandler.DefStringEncoding := IndyTextEncoding_OSDefault; IdFTP1.Get(lsStr, 'd:\'+'127-127-7586-7708K0.0715重1F', true,False);
sczyq 2014-02-22
  • 打赏
  • 举报
回复
IndyTextEncoding_OSDefault
zfju2k 2014-01-24
  • 打赏
  • 举报
回复
以前是TEncoding.Unicode 现在是IndyTextEncoding_Default 请问任何修改啊?要哪个文件,谢谢!
缘中人 2013-11-09
  • 打赏
  • 举报
回复
以前是TEncoding.Unicode 现在是IndyTextEncoding_Default
houdw2006 2013-10-27
  • 打赏
  • 举报
回复
我在XE5下编译原来在D7下使用Indy10.5.8的软件后,也出现不能接收汉字问题;在UdpRead中修改了字符编码方式为IndyTextEncoding_OSDefault,已经可以正确接收到汉字。(我的数据发送方是原来用BCB5编写的,应该是用GBK发送的汉字编码). var RcvStr: string; RcvStr := BytesToString(AData, 0, -1, IndyTextEncoding_OSDefault); 可以正确接收到汉字信息。试试看,不知对你的软件是否有效。
sczyq 2013-10-24
  • 打赏
  • 举报
回复
TEncoding.Default 改成 IndyTextEncoding_Default
zero_3 2013-10-20
  • 打赏
  • 举报
回复
indy 10.6 POST GB2312数据到底怎么做!
wylton 2013-10-17
  • 打赏
  • 举报
回复
IdHTTP1.Post('http://www.csdn.com',t,ss, IndyUTF8Encoding); 你把IndyUTF8Encoding换成你合适的.
zero_3 2013-10-17
  • 打赏
  • 举报
回复
引用 1 楼 wylton 的回复:
IdHTTP1.Post('http://www.csdn.com',t,ss, IndyUTF8Encoding); 你把IndyUTF8Encoding换成你合适的.
是呀,我没有找到IndyUTF8Encoding 这样GB2312 或者GBK的编码表示?

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧