如何使用indy10 Delphi发送Cyrillic数据

3
当我在网站上发送一些西里尔文本时,该文本会显示为“?????????”....这是我的发送函数: ```

当我发送一些西里尔文本到网站时,该文本会以“?????????”的形式显示....以下是我的发送函数:

```
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? - Runner
我不知道...我有Delphi 2009- indy10是内置的,但当我打开源文件夹时,我发现了2个indy文件夹,一个是indy9,另一个是indy10。 - TreantBG
1
Indy 9不支持Delphi 2009。Embarcadero在2009年的安装中包含Indy 9是一个错误。 - Remy Lebeau
1个回答

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

1
@user789546,看起来您正在使用一些较旧版本的Indy。那么请尝试删除utf-8参数:param.AddFormField('adtitle', 'Текст на кирилица').ContentTransfer := '8bit'; - Darin Dimitrov
1
@TreantBG:就像Darin所说,您正在使用旧版本。 您需要升级到最新的Indy 10版本。 下载和安装说明在Indy的网站上:http://www.indyproject.org。 - Remy Lebeau
好的,它起作用了!但是符号再次被编码,像这样:=D0=A1=D0=BE=D1=84=D0=B8=D1=8F。如何修复它? - TreantBG
只有在将“ContentTransfer”属性设置为“quoted-printable”时,它们才会以这种方式进行编码。 - Remy Lebeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接