0

Delphi XE5 + CIS 7.8 for XE5,POST 时使用中文表单域值,如下所示

clHttpRequest.AddFormField('状态', '待处理');

itAutoStatus := '待处理' ;
mmo1.Lines.Add( ' 汉字为 : <'+ itAutoStatus +'>' ) ; // <待处理&gt;
a2us := AnsiToUtf8(itAutoStatus) ;
mmo1.Lines.Add( ' 汉字AnsiToUtf8为 : <' + a2us +'>' ) ; // <待处理&gt;
gbs := HTTPEncode(itAutoStatus);
mmo1.Lines.Add( ' 汉字HTTPEncode为 : <' + gbs +'>' ) ; // <%B4%FD%B4%A6%C0%ED>
utfs := HTTPEncode(AnsiToUtf8(itAutoStatus));
mmo1.Lines.Add( ' 汉字HTTPEncode(AnsiToUtf8())为 : <' + utfs +'>' ) ; // <%E5%BE%85%E5%A4%84%E7%90%86>

在 IE8 中,正确的原始流是: pageNo=1&total=&SortField=&SortType=&PromTitle=&C1=&Status= %E5%BE%85%E5%A4%84%E7%90%86

clHttpRequest.AddFormField('状态', '待处理');

CIS 默认原始流是:pageNo=1&total=&SortField=&SortType=&PromTitle=&C1=&Status= %B4%FD%B4%A6%C0%ED

clHttpRequest.AddFormField('状态', HTTPEncode(AnsiToUtf8('待处理')));

现在 CIS 原始流是: pageNo=1&total=&SortField=&SortType=&PromTitle=&C1=&Status= %25E5%25BE%2585%25E5%25A4%2584%25E7%2590%2586

clHttpRequest.AddFormField 添加字符串'25',所以web服务器不会有数据库查询结果。

我想制作像 IE8 这样的原始流,如何解决这个问题?谢谢!!!

4

1 回答 1

0

解决了

clHttpRequest.Header.CharSet := 'UTF-8';

于 2013-11-13T02:30:53.573 回答