一个网站的post包参数是这样的-----------------------------7d82ce3a290528
Content-Disposition: form-data; name="Title"你好
-----------------------------7d82ce3a290528
Content-Disposition: form-data; name="ID"1932
-----------------------------7d82ce3a290528
Content-Disposition: form-data; name="Content"连接成功
-----------------------------7d82ce3a290528--可是利用IDhttp上传的时候字段的值如果是中文,就会显示???????,如果是英文或者数字就没关系不知道是哪里的事我使用的是Delphi2010,请哪位朋友帮忙看一下,是哪里的问题
Content-Disposition: form-data; name="Title"你好
-----------------------------7d82ce3a290528
Content-Disposition: form-data; name="ID"1932
-----------------------------7d82ce3a290528
Content-Disposition: form-data; name="Content"连接成功
-----------------------------7d82ce3a290528--可是利用IDhttp上传的时候字段的值如果是中文,就会显示???????,如果是英文或者数字就没关系不知道是哪里的事我使用的是Delphi2010,请哪位朋友帮忙看一下,是哪里的问题
解决方案 »
- 简单的整数相乘问题
- 界面在法语系统下有问题
- 我的mouse左右键中间有个滚轮,它对应的windows消息是什么?
- 数据库中事务的特点及其应用,急,不够再给分
- 100分请教,在d7里用rave打印储存在数据库中的jpg文件
- 在2000下编译的程序在98上运行时,窗口变的很大,而且窗口上的控件也都变大了。
- 两层系统改为三层的问题?
- 我是新手,请问如何自制可视控件?
- 下面的问题该怎么办?
- 哪位高手会使Developer Express Inc 的ExpressQuantumGrid Suite控件。请指教!!
- format中如何格式化二进制数据流?
- ADOQuery缓存模式下,能否对缓存中某列进行批量修改?
Windows, Classes, Idhttp, URLMon, IdMultipartFormData;const UpUrl = 'http://127.0.0.1/upfile/upfile.asp';
const UpFileName = 'C:\Documents and Settings\Administrator\桌面\test\web.mdb';
const DownUrl = 'http://www.google.com/images/logo_sm.gif';
const DownFileName = 'web.gif';type
TUpDownFile = class
private
FThreadID : DWord;
FHandle : THandle;
{ Private declarations }
public
constructor Create;
procedure UpFile;
procedure DownFile;
procedure Close;
end;implementationfunction UpFileEx(): string; stdcall;
var
MutPartForm: TIdMultiPartFormDataStream;
response: string;
FHttp: Tidhttp;
begin
FHttp := Tidhttp.Create(nil);
FHttp.HandleRedirects := true;
FHttp.AllowCookies := true;MutPartForm := TIdMultiPartFormDataStream.Create;
MutPartForm.AddFormField('act', 'upload');
MutPartForm.AddFormField('upcount', '1');
MutPartForm.AddFormField('filepath', 'data');
MutPartForm.AddFormField('file1', 'filename="' + UpFileName + '"');
MutPartForm.AddFormField('Submit', 'Submit');
MutPartForm.AddFile('file1', UpFileName, 'text/plain');
try
response := FHttp.Post(UpUrl, MutPartForm);
//Messagebox(0, PAnsiChar(response), 'ca', MB_OK);
finally
MutPartForm.Free;
FHttp.Free;
end;
end;function DownFileEx(): string; stdcall;
begin
UrlDownloadToFile(nil, PChar(DownUrl), PChar(DownFileName), 0, nil);
end;constructor TUpDownFile.Create;
begin
//
end;procedure TUpDownFile.UpFile;
begin
//FHandle := CreateThread(nil,0,@UpFileEx,nil,0,FThreadID);
UpFileEx;
end;procedure TUpDownFile.DownFile;
begin
// FHandle := CreateThread(nil,0,@DownFileEx,nil,0,FThreadID);
DownFileEx;
end;procedure TUpDownFile.Close;
begin
//ExitThread(FThreadID);
end;end.
怎么改变文本呢!我把代码附上,帮我修改一下吧,谢谢了!下边的"标题"和"为什么"显示的是"????????"英文和数字显示正常!
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
xxx:TStringStream;
Multi:TIdMultiPartFormDataStream;
begin
xxx:=TStringStream.Create;
Multi :=TIdMultiPartFormDataStream.Create;
Multi.AddFormField('FIELD_Title','标题');
Multi.AddFormField('FIELD_Q_SubjectID','14');
Multi.AddFormField('FIELD_Q_Type','1');
Multi.AddFormField('FIELD_Content','为什么123456ABCDE');
Multi.Position := 0;
xxx.LoadFromStream(Multi);
xxx.SaveToFile('1.txt');
Multi.Free;
xxx.Free;
end;
修改AppendString函数的调用参数
加入最后一个参数TEncoding.Default
strTitle := '标题';
Multi.AddFormField('FIELD_Title',strTitle);
然后试试,
如果不行,试试把网页制定为UTF-16的编码试试。