У меня есть эта проблема, и я не совсем уверен, где проблема на клиенте или на сервере или обоих. Я буду признателен за любую помощь в диагностике и решении этой проблемы.
У меня удаленный Linux-ящик, на котором запущен Debian, и я регулярно загружаю файлы и папки из Windows 8. Большую часть времени это просто работает. Я использую менеджер загрузок, который позволяет многопоточную загрузку ускорить процесс.
Однако в небольшом числе случаев имена файлов в linux содержат не-ascii символы. Мой менеджер загрузок (GetRight, довольно древний) скачал их изуродованным. Я думал, что это проблема GetRight, поскольку в putty, когда я захожу на ssh к серверу, а в WinSCP имена файлов выглядят корректно, а WinSCP загружает их без ошибок (хотя, увы, не в многопоточном режиме).
Но затем я попытался подключиться к серверу с помощью ftp.exe под Windows, и имена файлов также были искажены.
Теперь я решил, что я просто tar-gzip файлы на сервере и скачать их таким образом. Но это тоже не сработало. Например на Linux у меня есть:
[jade ~/tmp] ls
тестовый
[jade ~/tmp] tar -czf ../data.tar.gz .
[jade ~/tmp]
Теперь я загружаю data.tar.gz в Windows и пытаюсь распаковать его:
E:\!2>7z x data.tar.gz
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Processing archive: data.tar.gz
Extracting data.tar
Everything is Ok
Size: 10240
Compressed: 168
E:\!2>7z l data.tar
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Listing archive: data.tar
--
Path = data.tar
Type = tar
Physical Size = 10240
Headers Size = 9728
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2013-01-21 17:00:10 D.... 0 0 .
2013-01-21 17:00:10 ..... 2 512 .\╤В╨╡╤Б╤В╨╛╨▓╤Л╨╣
------------------- ----- ------------ ------------ ------------------------
2 512 1 files, 1 folders
Как вы можете видеть, даже если исключить агента переноса (такого как клиент / сервер ftp) из уравнения, проблема, тем не менее, сохраняется.
Я хотел бы сосредоточиться на последнем сценарии с tar-gziping на сервере и распаковкой на клиенте и заставить его работать.
Может кто-нибудь объяснить мне, почему я вижу то, что вижу? Это сервер или клиент виноват или оба? Как решить?
Я хотел бы отметить, что в окне у меня может быть файл с точно требуемым именем файла, если я создаю его сам:
E:\!2>echo a > тестовый
E:\!2>dir т*
Volume in drive E is Storage
Volume Serial Number is F41B-FF77
Directory of E:\!2
21-Jan-13 17:20 4 тестовый
1 File(s) 4 bytes
0 Dir(s) 63,511,015,424 bytes free
E:\!2>