【问题标题】:How to send Cyrillic data with indy10 Delphi如何使用 indy10 Delphi 发送西里尔文数据
【发布时间】:2011-09-13 10:14:22
【问题描述】:

当我在网站上发送一些西里尔文字时,该文字显示为“?????????”.... 这是我的发送功能:

http := TIDHttp.Create(nil);
http.HandleRedirects := true;
http.ReadTimeout := 5000;
http.Request.ContentType:='multipart/form-data';
param:=TIdMultiPartFormDataStream.Create;
param.AddFormField('adtitle','Текст на кирилица');
param.AddFormField('area','Текст явергсдфсдфадфас');
http.Post('http://www.example.com/',param);

【问题讨论】:

  • 您使用的是哪个版本的 Delphi?
  • 我不知道...我有 Delphi 2009 - indy10 是内置的,但是当我打开源文件夹时,我发现了 2 个 indy 文件夹,一个是 indy9,另一个是 indy10
  • Indy 9 不支持 Delphi 2009。Embarcadero 在 2009 年的安装中包含 Indy 9 是一个错误。

标签: delphi character-encoding indy


【解决方案1】:

试试这样:

param.AddFormField('adtitle', 'Текст на кирилица', 'utf-8').ContentTransfer := '8bit';
param.AddFormField('area', 'Текст явергсдфсдфадфас', 'utf-8').ContentTransfer := '8bit';

【讨论】:

  • @user789546,您似乎使用的是旧版本的 Indy。然后尝试删除utf-8参数:param.AddFormField('adtitle', 'Текст на кирилица').ContentTransfer := '8bit';
  • @TreantBG:就像达林说的,你使用的是旧版本。您需要升级到最新的 Indy 10 版本。下载和安装说明在 Indy 的网站上:indyproject.org
  • 好的,成功了!!但是符号再次编码如下: =D0=A1=D0=BE=D1=84=D0=B8=D1=8F 如何修复它?
  • 只有在 ContentTransfer 属性设置为 'quoted-printable' 时,它们才会以这种方式编码。
猜你喜欢
  • 2011-10-08
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 2011-09-17
  • 2011-03-26
  • 1970-01-01
相关资源
最近更新 更多