Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   IdFTP проблемы с кирилицей в названиях (http://forum.oszone.net/showthread.php?t=234377)

OkSherd 10-05-2012 16:14 1913493

IdFTP проблемы с кирилицей в названиях
 
Доброго времени суток уважаемые формчане.
Столкнулся с проблемой такого характера:
ФТП клиент написан на delphi 2010, через компонент TIdFTP организована передача файла

Код:

procedure TFFtp.Button2Click(Sender: TObject);
  var
  fn:string;//переменная имени файла
begin
  fn:=ExtractFileName(Edit1.Text);

...
  IdFTP1.Put(Edit1.Text, Edit2.Text + fn ,true);
...
end

Все работает если имя передаваемого файла написано латыницей. С кирилицей в имени выдает ошибку:


Опробовал разные ФТП сервера на Винде и на Линуксе проблема та же. Есть догадки что проблема в кодировке имен файлов. (IdFTP)
Можно ка то обойти эту проблему?

ferget 10-05-2012 17:29 1913547

попробуйте строку в ansi перекодировать перед отправкой

OkSherd 22-05-2012 12:02 1920300

ferget Если я не ошибаюсь то Edite и так записана строка в ansi кодировке по умолчанию.

Drongo 13-06-2012 13:59 1933441

OkSherd, В свойстве Charset попробуйте установить RUSSIAN_CHARSET

OkSherd 24-10-2012 17:59 2011442

Цитата:

Цитата Drongo
OkSherd, В свойстве Charset попробуйте установить RUSSIAN_CHARSET »

Увы не помогло. Вопрос так и не решился. На фтп серверах, поднятых на Unix системах файлы с кирилицей передаются, но название меняется на набор символов:

На фтп сервера на Windows системах совсем отказываются принимать файл.

AlexVol 25-10-2012 11:47 2011831

Цитата:

Цитата OkSherd
ferget Если я не ошибаюсь то Edite и так записана строка в ansi кодировке по умолчанию. »

Вот тут как раз ошибаетесь: там обычный String. И дело не в кодировке а в формата данных.
Надо использовать строку не из Edit, а через промежуточную переменную явного типа AnsiString.
Автопреобразования строк иногда выдают не очевидные результаты. Особенно в выражениях.


Время: 18:49.

Время: 18:49.
© OSzone.net 2001-