C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: TidFTP и русский язык  (Прочитано 4789 раз)
serviceru
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 125


« : 16 Март 2009, 15:08:23 »

Здравствуйте!
Столкнулся с проблемой, idFTP компонент при отправке файлов с русским названием на сервер заменяет их имена на ??
Как поправить данную неприятность? потому как это действительно неприятность!

Заранее всем благодарен!
Записан
Fokspro
Участник


Сказали спасибо: +11/-0
Offline

Сообщений: 61


« Ответ #1 : 16 Март 2009, 15:18:09 »

Какая версия Indy и самой среды разработки?
Записан
serviceru
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 125


« Ответ #2 : 16 Март 2009, 15:22:16 »

МММ....., версия инде 9 а среда RAD studio 2009
Записан
Fokspro
Участник


Сказали спасибо: +11/-0
Offline

Сообщений: 61


« Ответ #3 : 16 Март 2009, 15:32:49 »

Сам работал с Code Gear RAD Studio 2009, Indy 10, только компоненты TIdSTMP и TIdMessage та же проблема была. А все из-за того что 2009-я версия работает с юникодом и видимо не совсем корректно. Решение было таким - использовать трансферную кодировку компоненты TIdMessage:

ContentTransferEncoding = "base64";

Мне это не совсем подошло, пришлось на 2007-ой версии работать, может это как то вам поможет.
Записан
serviceru
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 125


« Ответ #4 : 16 Март 2009, 15:44:46 »

Да в том то и проблема, что перенести проект на 2007 версию проблемотично, легче переписать по новой, а это время!
Нужно искать выход!
Записан
serviceru
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 125


« Ответ #5 : 16 Март 2009, 19:14:40 »

поики по интернету так и не дали результата, ну что ктонибудь знает как это напасть побороть?
Записан
padovan
Участник


Сказали спасибо: +2/-0
Offline

Сообщений: 44


« Ответ #6 : 22 Май 2009, 00:45:23 »

Indy командой "UTF8" говорит серверу передавать в кодировке UTF8.

Преобразовываем в Ansi, вот фрагмент кода:
Код
TStrings *FilesLines = new TStringList();
IdFTP->ChangeDir("/S");
IdFTP->List(FilesLines,"",false);
 
for (int i = 0; i < FilesLines->Count; i++)
{
FilesLines->Strings[i]=Utf8ToAnsi(FilesLines->Strings[i]);
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.051 секунд. Запросов: 23.