delphi xe2 idftp使用乱码问题

stephenchern 2012-08-27 05:46:44
delphi xe2 idftp使用乱码问题
原来系统是delphi2007写的 利用idftp来操作ftp,使用方便 都很ok了
现在ide升级到delphi xe2 好处是delphi终于支持unicode了 但是随之带来的问题是 idftp在获取目录名称时 中文显示乱码
网络上也找了一些资料 设置了下 都不行 还敢请教下大家 谢谢。
...全文
500 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zungbin 2013-05-24
  • 打赏
  • 举报
回复
在idftp连接语句后面需要加以下代码 idftp1.iohandler.defstringencoding:=tencoding.ansi; 关键要加对地方:必须在connected后面加,否则运行出错。 网上搜来的, 我自己试过可以用. try with IdFtp do begin Username := User; Password := UserPwd; Host := HostIp; Port := HostPort; Connect(); IOHandler.DefStringEncoding := TEncoding.ANSI; Result := True; end except on E: Exception do begin //WriteError(e.Message); ShowMessage('FTP服务器连接错误,请检查设置或求助管理员!'); Result := False; end; end;
vga 2012-10-25
  • 打赏
  • 举报
回复
这个就是有问题....
stephenchern 2012-08-29
  • 打赏
  • 举报
回复
继续求解。。。。
ljklxlj 2012-08-28
  • 打赏
  • 举报
回复
我一段代码在xe下也遇到了乱码,将string 指定为ansistring就好了,在ftp下调整下编码方式或者用ansistring接受一下,在赋值看看
stephenchern 2012-08-28
  • 打赏
  • 举报
回复
还有哪位遇到过的 还请进来帮忙下啊 感激不尽
stephenchern 2012-08-28
  • 打赏
  • 举报
回复
var
i: Integer;
begin
IdFTP.ChangeDir(Dir);
IdFTP.TransferType := ftASCII;
IdFTP.List;
with IdFTP.DirectoryListing do
begin
ListItems.Clear;
for i := 0 to Count - 1 do
begin
with ListItems.Add do
begin
Caption := AnsiString(IdFTP.DirectoryListing.Items[i].FileName);
end;
end;
end;
end;

我改成这样 但是还是不行啊。。。是不是idftp哪里有encode设置? 之前有个地方设置了 也不行。
stephenchern 2012-08-27
  • 打赏
  • 举报
回复
简要代码发给大家看下 还请大家多多指教啊 谢谢。。
procedure TfrmMain.LoadListView(ListItems: TListItems; IdFTP: TIdFTP; Dir: string);
var
i: Integer;
begin
IdFTP.ChangeDir(Dir);
IdFTP.TransferType := ftASCII;
IdFTP.List;
with IdFTP.DirectoryListing do
begin
ListItems.Clear;
for i := 0 to Count - 1 do
begin
with ListItems.Add do
begin
Caption := ansitoutf8(IdFTP.DirectoryListing.Items[i].FileName);
// Caption := IdFTP.DirectoryListing.Items[i].FileName;
SubItems.Append(IntToStr(IdFTP.DirectoryListing.Items[i].Size));//获取文件大小,若是文件夹,大小为空
SubItems.Append(DateTimeToStr(IdFTP.FileDate(IdFTP.DirectoryListing.Items[i].FileName)));//获取文件日期 或者用 DateTimeToStr(IdFTP.DirectoryListing.Items[i].ModifiedDate) 也行 但是不能精确到秒
end;
end;
end;
end;
内容概要:本文详细介绍了Anaconda的下载、安装与配置方法(2025最新版)。Anaconda是一个开源的Python/R数据科学集成开发平台,预装了1500多个科学计算库,并提供conda包管理和环境管理功能。文章首先列出了系统要求,接着分别讲述了适用于不同操作系统的下载方式,包括官方下载和国内镜像下载。然后,具体讲解了Windows、macOS和Linux三种操作系统的安装步骤,以及环境变量的手动配置方法。此外,还提供了验证安装是否成功的命令和配置国内镜像源的方法,以提高下载速度。最后,列出了一些常用conda命令和常见问题的解决方案。 适合人群:从事数据科学、机器学习领域的研究人员和开发者,特别是需要频繁使用Python科学计算库的用户。 使用场景及目标:①帮助用户快速搭建Python开发环境,尤其是需要多个Python版本共存或隔离环境的情况下;②解决因网络原因导致的下载速度慢的问题;③提供详细的安装指南,确保安装过程顺利进行;④指导用户正确配置环境变量,避免常见的安装后无法使用的错误。 阅读建议:由于Anaconda涉及多平台安装和配置,建议读者根据自己的操作系统选择相应的章节重点阅读,并严格按照步骤操作。对于初次使用者,建议先从简单的安装入手,再逐步学习环境管理和包管理的相关命令。

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧