

環境: Ubuntu 14.04

こういったようにwgetでFTPからファイルをダウンロードしようとしました。

[code]

    wget --user=<USER> --password=<PASS>  "ftp://<DOMAIN>/日本語ファイル名.txt"
    
    << 日本語ファイル名.txt: そのようなファイルやディレクトリはありません
    
[/code]

しかし上記のエラーになってしまいます。

`--no-remove-listing`でリストファイルを確認してみると

[code]

    wget --user=<USER> --password=<PASS> --no-remove-listing "ftp://<DOMAIN>"
    cat .listing | nkf --guess
    << Shift_JIS (CRLF)
    
[/code]

ファイルはSJISエンコーディングされていました。そこでファイル名をSJISで指定すれば  
できるのかなと思い、下記のようなコマンドも試してみましたが、ダメでした。

[code]

    wget --user=<USER> --password=<PASS> "`echo ftp://<DOMAIN>/日本語ファイル名.txt | nkf -s`"
    wget --user=<USER> --password=<PASS> --remote-encoding=Shift_JIS "ftp://<DOMAIN>/日本語ファイル名.txt"
    wget --user=<USER> --password=<PASS> --remote-encoding=sjis "ftp://<DOMAIN>/日本語ファイル名.txt"
    wget --user=<USER> --password=<PASS> --remote-encoding=cp932 "ftp://<DOMAIN>/日本語ファイル名.txt"
    
[/code]

何か方法はないでしょうか？

**暫定解決？**

コメントで指摘いただいた通り、echoに`-n`をつけるとダウンロードできました。  
wget --user= --password= "`echo -n ftp://<DOMAIN>/日本語ファイル名.txt | nkf -s`"  
ただし、特定の日本語が含まれているとエラーになるようでした。

〇 日本語ファイル名.txt  
✕ 日本語ファーイル名.txt

Windows版のwgetだっとnkfで文字コード変換をしなくてもダウンロードできた(ーが含まれていても)ので、とりあえずこれで運用しようと思います。  
<https://eternallybored.org/misc/wget/>


CC BY-SA 3.0
2017-11-08T00:40:33.353
39400
2017-11-21T06:59:37.820
2017-11-21T06:59:37.820
17238
17238
question
ftp
ファイル名がSJISでエンコーディングされているFTPサーバからwgetで日本語名ファイルをダウンロードしたい