Не копирует файлы с кириллицей на FTP. Delphi

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Не копирует файлы с кириллицей на FTP. Delphi

Сообщение prot56k » 10.11.2019 12:44:54

Добрый день уважаемые коллеги.
Есть одна простая с виду задача.

Имеем:
1. Delphi 7 (или c++builder 6) (без поддержки юникода естественно).
2. Компонент idFTP или NMFTP для копирования файла на FTP сервер.

Пишу приложение для заливки файла на FTP сервер, все бы ничего, но есть один момент: у некоторых клиентов язык программ не поддерживающих юникод выставлен не русский (к примеру английский), и вот тут начинается проблемы с копированием файлов на FTP,
которые в своем имени имеют русские буквы. При закачке файлов по FTP idFTP (NMFTP) пишет, что файл не обнаружен, что не удивительно,
поскольку кириллица в именах этих файлов заменяется на знаки "?", соответственно файлы не могут быть залиты из за того, что вместо настоящего имени (к примеру): c:\отчет\годовой_отчет_full2019.docx в компоненты idFTP (NMFTP) видят следующее: c:\?????\???????_?????_full2019.docx, что естественно не соответствует действительности.

В принципе такие файлы delphi 7 (c++builder 6) видят благодаря, тому, что с ними можно работать через widestring, но как только имена этих файлов
передаются в качестве входных параметров для компонентов idFTP (NMFTP) то, все рушится, поскольку эти компоненты не юникодные и они не могут нормально преобразовывать unicode в ansi и т.д. Если язык для non unicode установлен русский, то все норм, все копируется, но необходимо что бы программа могла копировать русскоязычные файлы на FTP сервер без всяких смен языковых локалей для non unicode программ (как установлено так и установлено).

Коллеги помогите решить проблему для именно этих версий delphi (или c++builder). Переход на полностью юникодную оболочку (к примеру delphi xe, c++builder xe) не возможен, слишком много переписывать.

Какие варианты решения этой проблемы вы мне посоветуете? Может есть какие нибудь альтернативные компоненты для работы с FTP с поддержкой unicode (наподобие визуальных TNTControls) и т.д?

Заранее спасибо!
prot56k
незнакомец
 
Сообщения: 8
Зарегистрирован: 20.08.2019 14:22:23

Re: Не копирует файлы с кириллицей на FTP. Delphi

Сообщение Vadim » 10.11.2019 19:38:33

Вообще-то примеры "как" у Вас прямо перед глазами - в адресной строке браузера. ;-)
К примеру, русская буква "А" там отображается как "%C0". Вот и передавайте в свои компоненты FTP не русские символы, а их коды.
А вообще, из дополнительных компонент есть LNET и SYNAPSE. И там и там есть FTP-клмент.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Не копирует файлы с кириллицей на FTP. Delphi

Сообщение prot56k » 10.11.2019 20:15:11

блин может я чего то не понимаю, но в том то и проблема, что понимают эти компоненты только символьные имена, никакие имена файлов состоящих не из символов, а из их кодов они не воспринимают...
prot56k
незнакомец
 
Сообщения: 8
Зарегистрирован: 20.08.2019 14:22:23

Re: Не копирует файлы с кириллицей на FTP. Delphi

Сообщение Снег Север » 10.11.2019 22:25:36

prot56k, а ничего древнее delphi 7 найти не удалось? :mrgreen:

В windows есть системная функция GetShortPathName - преобразование длинных имен в короткие неюникодовские. Попробуйте.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: Не копирует файлы с кириллицей на FTP. Delphi

Сообщение Vadim » 11.11.2019 03:21:24

prot56k писал(а):блин может я чего то не понимаю

Вот это глубоко верное замечание. :D
Ну вот расскажите мне, Вы в строке адреса в браузере русские буквы вводили? Видели потом что получается? Разве не символы? Ну попробуйте маленько ручками поработать и посмотреть что получится. Может тогда моск и заработает... ;-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Не копирует файлы с кириллицей на FTP. Delphi

Сообщение serbod » 12.11.2019 13:21:04

Рекомендую уделить пару часов на эксперимент по переходу на Unicode. Мне это помогло лучше понять устройство многих вещей и обнаружить некоторые неочевидные ошибки.
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

Рейтинг@Mail.ru