第2个问题,举个例子:比如上传“三星7月份劳务费.xls”这个文件,Delphi的AnsiToUTF8函数编码内容为:E4 B8 89 E6 98 9F 37 E6 9C 88 E4 BB BD E5 8A B3 E5 8A A1 E8 B4 B9 2E 78 6C 73 而FTP服务器传入的AFileName为:E4 B8 89 E6 98 9F 37 E6 9C 88 E4 BB BD E5 8A B3 E5 8A A1 E8 B4 3F 78 6C 73 ,显然最后一个中文本来为E8 B4 B9(三个字节),结果丢掉了B9,而2E被替换成了3F,到底是Delphi的AnsiToUTF8函数有问题,还是哪里没考虑到?
解决方案 »
- C++转换为delphi
- 谁有控制word自动生成word文件的代码?我需要随心所欲的生成word文件(包括控制字体大小及文字居中及插入图片页眉等)
- 关于PNG 图形的旋转问题,求救~~
- 请问如何实现两个时间之间的记录的显示?用什么语句?
- 关于GetWindowClass函数
- 为什么我用Insert语句插入一条重复的记录,不出异常啊?
- 有dbgrid中click滚动条的相关事件吗?
- 怎么可以让application.messagebox打开一个模式窗体(无未结贴记录,有答案即结帖)
- 怎样讲指针定位到某条记录上,例如我要从第五条记录开始选择全部数据,怎么写sql 语句!(在线)
- DELPHI中的COM+
- 还有多少人在坚守Delphi的阵营?
- 求助,进程间的发送消息问题
IdFTPServer := TIdFTPServer.create( nil ) ;
IdFTPServer.OnStoreFile := IdFTPServer1StoreFile;
下面的AFilename有时就是乱码,像UTF8,又不完全像
procedure TFTPServer.IdFTPServer1StoreFile(ASender: TIdFTPServerThread;
const AFilename: string; AAppend: Boolean; var VStream: TStream);
begin
if FileExists( translatepath( AFileName, ASender.HomeDir ) ) and AAppend then
begin
VStream := TFileStream.create( translatepath( AFileName, ASender.HomeDir ) , fmOpenWrite or fmShareExclusive ) ;
VStream.Seek( 0, soFromEnd ) ;
end
else
VStream := TFileStream.create( translatepath( AFileName, ASender.HomeDir ) , fmCreate or fmShareExclusive ) ;
end
正在尝试用TTCPSERVER做
ASender.Connection.IOHandler.WriteLn('500 权限拒绝');
ASender.Connection.IOHandler.Close;//这里该怎么通知结束????
exit;
try
if FileExists(filename ) and AAppend then
begin
VStream := TFileStream.create(filename , fmOpenWrite or fmShareExclusive ) ;
VStream.Seek( 0, soFromEnd ) ;
end
else
VStream := TFileStream.create(filename , fmCreate or fmShareExclusive ) ;另外TTCPSERVER据说比较稳定,这个如何做FTP服务?TIdFTPServer代码那么巨大,估计不好做吧?