Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2008, 19:11   #1
Cheetan
 
Регистрация: 25.08.2008
Сообщений: 3
По умолчанию Проблема с idFTPServer

Вопщем при получении списка с сервера в браузере IE исключаются русские буквы, ктонить знает как устранить эту проблему?

Rus.jpg

Вот формирование списка на сервере:




function TForm1.TransLatePath( const APathname, homeDir: string ) : string;
var
tmppath: string;
begin
result := SlashToBackSlash( homeDir ) ;
tmppath := SlashToBackSlash( APathname ) ;
if homedir = '/' then
begin
result := tmppath;
exit;
end;

if length( APathname ) = 0 then
exit;
if result[length( result ) ] = '\' then
result := copy( result, 1, length( result ) - 1 ) ;
if tmppath[1] <> '\' then
result := result + '\';
result := result + tmppath;
end;

...

procedure TForm1.FTPListDirectory(ASender: TIdFTPServerThread;
const APath: String; ADirectoryListing: TIdFTPListItems);

procedure AddlistItem( aDirectoryListing: TIdFTPListItems; Filename: string; ItemType: TIdDirItemType; size: int64; date: tdatetime ) ;
var
listitem: TIdFTPListItem;
begin
listitem := aDirectoryListing.Add;
listitem.ItemType := ItemType;
listitem.FileName := Filename;
listitem.OwnerName := 'SPY';
listitem.GroupName := 'all';
listitem.OwnerPermissions := '---';
listitem.GroupPermissions := '---';
listitem.UserPermissions := '---';
listitem.Size := size;
listitem.ModifiedDate := date;
end;

var
f: tsearchrec;
a: integer;
begin
ADirectoryListing.DirectoryName := apath;

a := FindFirst( TransLatePath( apath, ASender.HomeDir ) + '*.*', faAnyFile, f ) ;
while ( a = 0 ) do
begin
if ( f.Attr and faDirectory > 0 ) then
AddlistItem( ADirectoryListing, f.Name, ditDirectory, f.size, FileDateToDateTime( f.Time ) )
else
AddlistItem( ADirectoryListing, f.Name, ditFile, f.size, FileDateToDateTime( f.Time ) ) ;
a := FindNext( f ) ;
end;

FindClose( f ) ;
end;
Cheetan вне форума Ответить с цитированием
Старый 21.10.2008, 21:32   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

попробуй все названия папок привести к той или иной кодировке. Такая проблема только в IE ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 22.10.2008, 13:39   #3
Cheetan
 
Регистрация: 25.08.2008
Сообщений: 3
По умолчанию

Да только в IE.
Ну есть например у меня полученое название f.name с неизвестной кодировкой, как мне его в другую кодировку перевести?
Cheetan вне форума Ответить с цитированием
Старый 22.10.2008, 13:51   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

потестируй в какой кодироке отображается в IE корректно и туда конвертируй функций по конвертированию куча и на нашем форуме их не мало.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема eldar Работа с сетью в Delphi 12 05.10.2008 18:10
idFTPServer CoDeR Работа с сетью в Delphi 0 16.03.2008 21:21
Проблема. kupulau Общие вопросы C/C++ 19 05.02.2008 21:11
проблема bill Свободное общение 7 08.07.2007 21:05