idFtp XE5下中文乱码的问题。

weill 2015-02-15 04:29:02
服务器用的是Serv-U。
用win自有功能登录能正常看到中文目录,用idFtp去访问,得到的List是乱码,网上查过,各种方法试过,都没用。

另外
IdTFP1->IdHabdler->DefStringEncoding = TEncoding::Default; //在XE5下报错,类型不匹配。

中间无数的折腾……
TEncoding::BigEndianUnicode;
TEncoding::Default;
TEncoding::Unicode;
TEncoding::UTF7;
TEncoding::UTF8;

...全文
195 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weill 2015-02-16
  • 打赏
  • 举报
回复
在BCB2006下,以下代码正常显示,不会出乱码(注:IdWinsock2.hpp在BCB2006下要进行修正) IdFTP1->Host = "199.100.100.1"; IdFTP1->Username = "User"; IdFTP1->Password = ""; //TStringList *filelist=new TStringList(); IdFTP1->Connect(); AnsiString LSName; IdFTP1->List(Memo1->Lines,"",true);
weill 2015-02-16
  • 打赏
  • 举报
回复
引用 2 楼 realbay 的回复:
AnsiString编码试过了吗

IdFTP1->Host = "199.100.100.1";
IdFTP1->Username = "User";
IdFTP1->Password = "";

//TStringList *filelist=new TStringList();
IdFTP1->Connect();
AnsiString LSName;
IdFTP1->List(Memo1->Lines,"",true);
Memo1->Lines->Add(IntToStr(IdFTP1->DirectoryListing->Count));
LSName = Utf8ToAnsi(IdFTP1->DirectoryListing->Items[0]->FileName);
Memo2->Lines->Add(LSName);
LSName = IdFTP1->DirectoryListing->Items[1]->FileName;
Memo2->Lines->Add(LSName);
运行结果:Memo1中: Type=dir;Modify=20150215014922.204; Ͷ¸åרÀ¸ Type=dir;Modify=20150216011845.001; ×ÔÓÉÉÏ´« 2
realbay 2015-02-15
  • 打赏
  • 举报
回复
AnsiString编码试过了吗
weill 2015-02-15
  • 打赏
  • 举报
回复
更正 IOHandler

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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