3

У меня есть эта проблема, и я не совсем уверен, где проблема на клиенте или на сервере или обоих. Я буду признателен за любую помощь в диагностике и решении этой проблемы.

У меня удаленный 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>

1 ответ1

2

Смотрите этот ответ для объяснения того, что происходит.

Я бы посоветовал вам использовать 7zip вместо tar, поскольку 7zip, похоже, "запоминает", какую кодировку использовали для имен файлов, и красиво распаковывает их. Я проверил это на шведских не-ASCII символах, и, надеюсь, это будет работать и для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .