印。使用%发布字符串出错

时间:2012-02-06 19:54:41

标签: delphi delphi-7 indy

我在Delphi 7下使用Indy 9.00.10。

我使用TIdMultiPartFormDataStream使用 TIdHTTP 发布一些数据。当我尝试发布一些包含%的文本值的param,例如'100%brand'时,它会引发“格式%没有参数”。

在我看来,它正在调用我试图发布的值的一些格式函数,并且它希望每个%都是占位符,这不是我的情况。

这是一个已知问题吗?它有解决方法吗?

1 个答案:

答案 0 :(得分:6)

您使用的是Indy的旧版本。 Indy 9的最后一个版本是9.0.50,可在Indy's SVN中找到。此问题已在9.0.13中修复。

如果您不想升级,则解决方法是将字段数据中的所有'%'字符翻倍,以便将其格式化为单个'%'字符,例如:

Stream.AddFormField('FieldName', StringReplace(FieldValue, '%', '%%', [rfReplaceAll]));