Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение > Filezilla и другие: поменять кодировку на сервере


Автор: CompWorm 24.6.2012, 12:42
Привет всем!

на FTP сервере файлы в двух кодировках.
подскажите, можно ли силами САБЖа или каким-то другим фтп-клиентом перекодировать файлы на FTP сервере из одной кодировки в другую?

Автор: Akella 25.6.2012, 22:32
В каком смысле файлы перекодировать? Имена файлов или именно текстовые файлы, содержимое?

Автор: CompWorm 26.6.2012, 09:23
имена.

Автор: Akella 26.6.2012, 12:32
Наверное нужен какой-нибудь клиент с поддержкой скриптов. Ты ведь хочешь переименовать много файлов автоматически?
Я такое не встречал.
Ну или нужно писать софтину, например на шарпе/дельфи/жабе. По идее она не такая уж и сложная может быть.

Добавлено через 1 минуту и 10 секунд
Но программно определять (угадывать) кодировку текста сложновато и вероятность не на 100%.

Автор: CompWorm 26.6.2012, 13:17
Akella, очень хреново  smile . то есть будучи клиентом надо писать башовый скрипт для скачивания и отдавания обратно в правильной кодировке... =/ 

Автор: Akella 26.6.2012, 16:50
зачем скачивать О_о
FTP протокол поддерживает команду переименования

Добавлено через 1 минуту и 56 секунд
http://ftpguide.com/RNFR.htm
http://ftpguide.com/RNTO.htm

Добавлено через 7 минут и 2 секунды
Ну пойми, что разработчики ФТП-серверов и клиентов даже и не предполагали, что кому-нибудь когда-нибудь придётся переименовывать в цикле файлы с неправильной кодировкой в именах?

Автор: CompWorm 27.6.2012, 15:02
Цитата(Akella @  26.6.2012,  16:50 Найти цитируемый пост)
разработчики ФТП-серверов и клиентов даже и не предполагали

ну хорошо, вот у меня толпа клиентов, каждый шлёт в своей кодировке файлы на сервер... кто-то в UTF кторо в сp1251, третьи в KOI8-R чертвёртые ещё в какой-нибудь албанской... и как мне их просматривать после этого? каждый раз щёлкать в клиенте кодировки, пытаясь угадать что там? а как быть с вин-эксплорером, который вообще кроме cp1251 ничего не знает?

Автор: Akella 28.6.2012, 10:21
А куда ты собираешься перекодировать?
Представь ситуацию. Пользователь загружает файл и видит нормальное имя. Через время он заходит на сервер и видит там свой файл, только имя файла кракозябрами.

Варианты.
Заставить всех пользователей загружать все файлы в юникоде. Наиболее правильный вариант.
Имена файлов должны быть только латиницей.
Всё оставить как есть.
Написать некую утилиту, которая следит за папками на сервере и после загрузки автоматически перекодировать всё в юникод.

Добавлено через 39 секунд
Цитата(CompWorm @  27.6.2012,  15:02 Найти цитируемый пост)
ну хорошо, вот у меня толпа клиентов, каждый шлёт в своей кодировке файлы на сервер... кто-то в UTF кторо в сp1251, третьи в KOI8-R чертвёртые ещё в какой-нибудь албанской...


вот для таких и придумали юникод smile

Автор: CompWorm 29.6.2012, 09:32
Akella, да я и не спорю про юникод.
а вообще как-то сервер можно заставить принимать только в одной кодировке а на прочие давать отлуп? или это не практикуется?

Автор: k0rvin 29.6.2012, 12:46
CompWorm, может в документации к твоему FTP-серверу есть какая-нибудь информация по поводу кодировок?

Добавлено через 6 минут и 43 секунды
Цитата(Akella @ 28.6.2012,  10:21)
Написать некую утилиту, которая следит за папками на сервере и после загрузки автоматически перекодировать всё в юникод.

А как эта программа определит, что файл залит полностью? Смотри какая ситуация: пользователь заливает большой файл "abracadabra.ext", связь обрывается, утилита переименовывает файл в "encoded.ext", пользователь хочет дозалить файл, но у него не получается, ведь он опять заливает "abracadabra.ext".

Вывод: перекодировать нужно на уровне FTP-сервера, сразу при получении запроса на залив файла.

Автор: CompWorm 29.6.2012, 14:30
k0rvin, я пока не знаю кто у меня в качестве FTP сервиса, но это не важно. 
мне кажется ситуация абсурдна и в настройках любого сервера должно как-то настраиваться принудительное либо конвертирование либо отлуп. и это однозначно должно быть реализовано на стороне сервера. smile 

Автор: k0rvin 3.7.2012, 10:57
Цитата(CompWorm @ 29.6.2012,  14:30)
мне кажется ситуация абсурдна и в настройках любого сервера должно как-то настраиваться принудительное либо конвертирование либо отлуп.

Разве? Протокол FTP же довольно простой и старый, не факт, что в нем подобное предусмотренно, а значит и FTP-сервер не обязан предоставлять такую возможность.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)