Не копирует файлы с кириллицей на FTP. Delphi
Добавлено: 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) и т.д?
Заранее спасибо!
Есть одна простая с виду задача.
Имеем:
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) и т.д?
Заранее спасибо!