gpt4 book ai didi

Delphi 的 utf8encode 包括字符串末尾的\r\n

转载 作者:行者123 更新时间:2023-12-03 15:31:03 27 4
gpt4 key购买 nike

我需要从我的 Delphi 应用程序将一些数据发布到 Web 服务。简而言之,我正在做的就是这个

http := TIdHTTP.Create(nil);
params := TIdMultiPartFormDataStream.Create;
params.AddFormField('param', utf8encode('value'));
http.Post('myurl', params);

在服务器日志中我得到了这个

{"param"=>"value\r\n"}

我不知道是 utf8encode 还是 TidHTTP.post 在字符串末尾包含 CRLF。知道如何防止这种情况发生吗?

最佳答案

TIdHTTPTIdMultipartFormDataStream 不会添加不必要的额外换行符。另外,您手动编码文本的事实告诉我您可能使用的是旧版本的 Indy。在当前 10.5.8 SVN 修订版中,AddFormField() 有一个 ACharset 参数,用于设置 TIdFormDataField.CharSet 属性,因此 TIdMultipartFormDataStream 可以在需要时为您内部编码文本,例如:

http := TIdHTTP.Create(nil);   
params := TIdMultiPartFormDataStream.Create;
params.AddFormField('param1', 'value1', 'utf-8');
params.AddFormField('param2', 'value2', 'utf-8');
params.AddFormField('param3', 'value3', 'utf-8');
http.Post('myurl', params);

关于Delphi 的 utf8encode 包括字符串末尾的\r\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8925030/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com