PDA

Показать полную графическую версию : wget проблемма русских названий


Dnivd
26-03-2014, 05:21
Всем привет, кто нибудь смог победит у wget-а проблему с русскими названиями у файлов и папок? Пересмотрел все ключи, в инете поискал, но пока без успеха.

Iska
26-03-2014, 09:12
Пример проблемы приведите.

Dnivd
26-03-2014, 10:21
Сам скрипт:
@echo off
set uri=http://10.24.119.245/!_Download_Files_
set patth1="C:\Install"

for /f "tokens=2 delims=:(" %%i in ('ipconfig /all^|find "IPv4"') do (
for /f "tokens=1-4 delims=. " %%A in ("%%i") do (
IF %%A==10 IF %%B==24 set OTDEL=%%C
)
)
if not exist %patth1% mkdir %patth1%
wget.exe -c -R index.html* -r -l0 -nH -np -N --cut-dirs=2 %uri%/EVERYONE/ -P %patth1%
wget.exe -c -R index.html* -r -l0 -nH -np -N --cut-dirs=2 %uri%/%OTDEL%/ -P %patth1%
exit

При скачке любого файла или папки с русским именем: Папка, Файл.txt
Скачивается с именем: Р%9Fапка, Файл.txt
Кодировку пытался менять в самом скрипте через команду chcp, пытался файл под разной кодировкой сохранять, пробовал разные ключи добавлять которые кому то помогали качать нормально. Но пока не смог найти решения

alv1r
26-03-2014, 10:24
Q: Не-ASCII символы сохраняются в именах файлов как %D0%A5%D1%83%D0%B9 (или того хуже), хотя локаль юникодная.
A: Укажите ключ --restrict-file-names=nocontrol,unix или --restrict-file-names=nocontrol,windows соответственно.
Если у вас Windows и локаль не юникодная — используйте вариант от Alex_Piggy (http://forum.ru-board.com/topic.cgi?forum=5&topic=10066&start=0&limit=1&m=2#1) с ключом --local-filesystem-encoding=ENCODING, где ENCODING — имя кодировки локали в терминах iconv. Текущую локаль cmd.exe можно проверить при помощи команды chcp. Для русской кириллицы в Windows обычно используется CP866. источник (http://forum.ru-board.com/topic.cgi?forum=5&topic=10066&start=1860#lt)

Dnivd
26-03-2014, 10:41
пробовал, ему пофиг

--restrict-file-names=nocontrol,windows данный ключ пофиг в каком месте среди ключей ставить? или его куда то определенно нужно писать?
--local-filesystem-encoding=ENCODING, данную команду нужно писать как --local-filesystem-encoding=CP866 или я ошибаюсь?

Кстати --local-filesystem-encoding=ENCODING не поддерживается wget, пишет смотри в хелпе список ключей, Хочу уточнить что у меня wget в виде одного exe файла, получается он урезанный по функционалу

alv1r
26-03-2014, 14:24
как насчет взять тот вгет, на который я дал ссылку?

Dnivd
27-03-2014, 05:02
Сорь не увидел ссылку :(. Скачал Результат тот же.

@echo off
set uri=http://10.24.119.245/!_Download_Files_/
set patth1="C:\Install"

if not exist %patth1% mkdir %patth1%
wget.exe -c -R index.html* -r -l5 -nH -np --local-filesystem-encoding=CP866 %uri% -P %patth1%
::wget.exe -c -E -R html -r -l5 -nH -np %uri% -P %patth1%
exit

Ведь так нужно по идее ключ указать?

Как вариант апачь может быть настроен не так

alv1r
27-03-2014, 07:58
Цитата Dnivd:
--restrict-file-names=nocontrol,windows »
добавье и попробуйте еще раз

Dnivd
27-03-2014, 09:15
wget.exe -c -R index.html* -r -l0 -nH -np -N --cut-dirs=2 --restrict-file-names=nocontrol,windows --local-filesystem-encoding=CP866 %uri%/_EVERYONE/ -P %patth1%
сделал так эффекта нет. По видимому где то еще косяк, ладно спасиб буду без русского языка делать

mrkomap@twitter
26-10-2015, 10:28
мне помогло --local-filesystem-encoding=Win1251 (без --restrict-file-names=...) и wget по сслыке из поста alv1r (http://forum.oszone.net/post-2328718-4.html)

Foreigner
26-10-2015, 10:41
Дайте реальную ссылку для скачивания с файлом в кириллице.

passwd
11-08-2018, 20:12
--restrict-file-names=nocontrol »
Спасибо, на Linux получилось.




© OSzone.net 2001-2012