大家看看这是怎么回事啊,向页面提交数据时出错。 ( 积分: 100 )

  • 主题发起人 主题发起人 gxch
  • 开始时间 开始时间
G

gxch

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在做一个向论坛发贴的程序,当向论坛中提交数据时出现错误提示,请大家帮我看看吧,代码如下:
Param := TIdMultipartFormDataStream.Create;
with param do
begin
AddFormField('atc_title', edit1.Text);
AddFormField('mode', '2');

AddFormField('atc_autourl','1');
AddFormField('atc_usesign', '1');
AddFormField('atc_convert', '1');
AddFormField('topped', '0');
AddFormField('digest', '0');
AddFormField('font', '宋体');
AddFormField('size', '3');
AddFormField('color', 'skyblue');
//就是下面这句出的问题,执行到这里提示‘No argument for format %c ’
//如果是正常文字就没有问题,当含有如下网址时就会出现上面的提示
//rtsp://61.143.38.129/move/%CF%B2%BE%E7%C6%AC/%B3%AC%BC%B6%C4%CC%B0%D6/%B3%
//大家看这个问题怎么解决啊?
AddFormField('atc_content',memo1.Text); //就是这句出的问题
AddFormField('atc_rvrc', '0');
AddFormField('atc_money', '0');
AddFormField('atc_downrvrc1', '0');
AddFormField('atc_attachment1', 'filename=""');
AddFormField('atc_downrvrc2', '0');
AddFormField('atc_attachment2', 'filename=""');
AddFormField('atc_downrvrc3', '0');
AddFormField('atc_attachment3', 'filename=""');
AddFormField('atc_downrvrc4', '0');
AddFormField('atc_attachment4', 'filename=""');
AddFormField('atc_downrvrc5', '0');
AddFormField('atc_attachment5', 'filename=""');
AddFormField('step','2');
AddFormField('pid','');
AddFormField('action','new');
AddFormField('fid',currendfid);
AddFormField('tid', '0');
AddFormField('article', '');
end;
大家帮帮忙吧
 
我正在做一个向论坛发贴的程序,当向论坛中提交数据时出现错误提示,请大家帮我看看吧,代码如下:
Param := TIdMultipartFormDataStream.Create;
with param do
begin
AddFormField('atc_title', edit1.Text);
AddFormField('mode', '2');

AddFormField('atc_autourl','1');
AddFormField('atc_usesign', '1');
AddFormField('atc_convert', '1');
AddFormField('topped', '0');
AddFormField('digest', '0');
AddFormField('font', '宋体');
AddFormField('size', '3');
AddFormField('color', 'skyblue');
//就是下面这句出的问题,执行到这里提示‘No argument for format %c ’
//如果是正常文字就没有问题,当含有如下网址时就会出现上面的提示
//rtsp://61.143.38.129/move/%CF%B2%BE%E7%C6%AC/%B3%AC%BC%B6%C4%CC%B0%D6/%B3%
//大家看这个问题怎么解决啊?
AddFormField('atc_content',memo1.Text); //就是这句出的问题
AddFormField('atc_rvrc', '0');
AddFormField('atc_money', '0');
AddFormField('atc_downrvrc1', '0');
AddFormField('atc_attachment1', 'filename=""');
AddFormField('atc_downrvrc2', '0');
AddFormField('atc_attachment2', 'filename=""');
AddFormField('atc_downrvrc3', '0');
AddFormField('atc_attachment3', 'filename=""');
AddFormField('atc_downrvrc4', '0');
AddFormField('atc_attachment4', 'filename=""');
AddFormField('atc_downrvrc5', '0');
AddFormField('atc_attachment5', 'filename=""');
AddFormField('step','2');
AddFormField('pid','');
AddFormField('action','new');
AddFormField('fid',currendfid);
AddFormField('tid', '0');
AddFormField('article', '');
end;
大家帮帮忙吧
 
当提交的数据中不出现类似“/%CF%B2%BE%E7%C6%AC/%B3%AC%BC%B6%C4%CC%B0%D6/%B3%”这样的字符时就不出问题
 
大家都没弄过吗?帮我看看吧
 
No argument for format %c

你的字段什么类型啊
转换时出错了
 
就是string啊,当memo1.Text:='lasuijfkladhfiuayerlasdfjoaiuser90382489234e';
这样的文字时, AddFormField('atc_content',memo1.Text); 这一句不会出错,

当memo1.text:='%CF%B2%BE%E7%C6%AC/%B3%AC%BC%B6%C4%CC%B0%D6/%B3%';时,或者
文字中存在类似'%C%D'这样的字符时,执行到AddFormField('atc_content',memo1.Text);这一句就会出现‘No argument for format %c ’错误
 
说简单一点就是
param.AddFormField('atc_content','%CF');

出错
 
AddFormField 后面肯定使用了 format 函数。
 
同意楼上,请检查AddFormField函数.
 
期待。。。
 
AddFormField是indy控件包TIdMultipartFormDataStream中的一个方法,delphi帮助中的信息如下:
procedure AddFormField(const AFieldName: string; const AFieldValue: string);

Description

AddFormField
就这么一点,是不是中文url经过编码的问题啊,像下面的地址就不行:
rtsp://61.143.38.129/move/%CF%B2%BE%E7%C6%AC/%B3%AC%BC%B6%C4%CC%B0%D6/%B3%
如果不含有%就没问题,晕死了
 
gxch:
很简单可以解决阿,你把/%CF%B2%BE%E7%C6%AC/%B3%AC%BC%B6%C4%CC%B0%D6/%B3%
转换成正常的自命就可以了阿,这个是uf8编码还是什么我记不清了,到全文检索中能找到算法的。
 
我也是想这么做,但是不一定每次都会出现这样的网址啊,而且出现的网址和文本中也不仅仅只有这种格式的网址还有正常的网址呢,要解码的话还需要找到使用utf8编码过的网址吗?
 
问题已经解决了,大家平均分吧
 
后退
顶部