Graham Powell wrote:
> I am currently testing with 3 FTP sites and none of them work with
> Unicode characters. The "OPTS UTF8 ON" returns unsupported.
Well, OPTS UTF8 was always unoffical, what does the FEAT command
return is much more important, in latest OverbyteIcsFtpTst demo
I show how to handle it, also follow the links in the comments:
procedure TFtpReceiveForm.FtpClient1RequestDone(
Sender : TObject;
RqType : TFtpRequest;
ErrCode : Word);
var
Cli : TFtpClient;
begin
Cli := TFtpClient(Sender);
Display('Request ' + LookupFTPReq (RqType) + ' Done.');
Display('StatusCode = ' + IntToStr(Cli.StatusCode));
Display('LastResponse was : ''' + Cli.LastResponse + '''');
if ErrCode = 0 then
Display('No error')
else
Display('Error = ' + IntToStr(ErrCode) +
' (' + Cli.ErrorMessage + ')');
{ Display last progress value }
InfoLabel.Caption := IntToStr(FProgressCount);
if ErrCode = 0 then begin
case RqType of
ftpFeatAsync,
ftpConnectFeatAsync,
ftpConnectFeatHostAsync :
{ If the server supports rfc 2640 we turn UTF-8 ON. }
{ see also http://wiki.filezilla-project.org/Character_Set }
{ For backward compatibility with servers that implement }
{ the long expired IETF draft }
{ http://tools.ietf.org/html/draft-ietf-ftpext-utf-8-option-00 }
{ it is also required to send the OPTS UTF8 ON command and to }
{ ignore a possible error response. }
if ftpFeatUtf8 in Cli.SupportedExtensions then begin
{ Sets property CodePage as well in Edit's OnChange }
CodePageEdit.Text := IntToStr(CP_UTF8);
Display('Server seems to support RFC 2640 - UTF-8 turned
on');
end;
ftpOptsAsync :
{ Opts UTF8 ON is only required for backward compatibility }
{ with servers not implementing rfc 2640 properly. }
if Cli.NewOpts = 'UTF8 ON' then
CodePageEdit.Text := IntToStr(CP_UTF8)
else if Cli.NewOpts = 'UTF8 OFF' then
CodePageEdit.Text := IntToStr(CP_ACP);
--
Arno
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be