2014-11-15 2 views
0

나는 tvrage에서 이미지를 다운로드하도록 업데이트 한 작은 펄 스크립트를 가지고 있습니다. 그러나 나는 문제가있다. 이 내가 문제가있는 코드 라인 : 그것은 일반적으로 잘 작동하지만, 시간에서이 같은 오류와 함께 실패 시간을 잴다운로드 위치 주변의 문자 변경 문자

system "wget -P '/home/user/script/cache/posters' $imgurl"; 

합니다. 내가

A/홈/사용자/스크립트/캐시/포스터 A와 그 wget을 변경 수 '와'하는 문제를 찾은

HTTP request sent, awaiting response... 200 OK 
Length: 16758 (16K) [image/jpeg] 
Saving to: â/home/user/script/cache/posters/28386.jpgâ 
ERROR! Wide character in syswrite at IO/Handle.pm line 207. 
ERROR! Wide character in syswrite at IO/Handle.pm line 207. 
Compilation failed in require. 
Wide character in syswrite at IO/ 

/28386.jpgâ

모든 성공적인 다운로드는이 '와'

HTTP request sent, awaiting response... 200 OK 
Length: 28218 (28K) [image/jpeg] 
Saving to: ‘/home/user/script/cache/posters/6597.jpg’ 

난 그냥이

system "wget --restrict-file-names=nocontrol -P '/home/tup/tuper4/cache/posters' $imgurl"; 
를 추가하는 시도

더 나은 결과를 얻고 지금까지 실패하지 않았 으면 좋겠지 만 문제가 아니라고 생각하며 가능하면 지침을 원합니다.

어쩌면

system "cd /location/ && wget $imgurl"; 

가 어떤 차이를 만들 것 시도해야 하는가?

내 진짜 질문은 여기에 있습니다 : wget이 'and'에서 '?'로 변경 될 수있는 이유는 무엇입니까?

도움을 주셔서 감사합니다. 로케일의

출력은 다음과 같습니다

LANG=en_US.UTF-8 
LANGUAGE= 
LC_CTYPE="en_US.UTF-8" 
LC_NUMERIC="en_US.UTF-8" 
LC_TIME="en_US.UTF-8" 
LC_COLLATE="en_US.UTF-8" 
LC_MONETARY="en_US.UTF-8" 
LC_MESSAGES="en_US.UTF-8" 
LC_PAPER="en_US.UTF-8" 
LC_NAME="en_US.UTF-8" 
LC_ADDRESS="en_US.UTF-8" 
LC_TELEPHONE="en_US.UTF-8" 
LC_MEASUREMENT="en_US.UTF-8" 
LC_IDENTIFICATION="en_US.UTF-8" 
LC_ALL= 

그리고 이미지는 UTF-8

있습니다 나는 그것이 인코딩을해야했다 따라서

--restrict-file-names=nocontrol 

유적을 추가 한 의심했다 그것이 효과가 있는지보기 위해서.

편집 : 며칠 후 오류를 다시 보지 못했지만 "nocontrol"이 도움이되었습니다.

답변

0

문자를 변경하면 wget이 아닙니다.
문자 인코딩이 잘못된 것 같습니다.

실제 인코딩이 UTF-8 인 경우 다른 문자로 설정하면 따옴표를 문자 â으로 표시하는 것이 일반적인 증상입니다. 때로는 더 많은 문자가 따라옵니다.

인코딩을 UTF-8으로 설정하면 작동합니다.

명령 locale의 출력은 무엇인가 -

?

배경 정보 "를 인용"인터넷 검색
http://askleo.com/why_do_i_get_odd_characters_instead_of_quotes_in_my_documents/

은 좋은 결과를 얻을 수 있습니다. 로케일

+0

출력된다 : LANG = '은 en_US.UTF-8 LANGUAGE = LC_CTYPE = "은 en_US.UTF-8" LC_NUMERIC = "은 en_US.UTF-8" LC_TIME = "은 en_US.UTF-8" LC_COLLATE = "은 en_US.UTF-8" LC_MONETARY = "은 en_US.UTF-8" LC_MESSAGES = "은 en_US.UTF-8" LC_PAPER = "은 en_US.UTF-8" LC_NAME = "은 en_US.UTF-8" LC_ADDRESS = "은 en_US.UTF-8" LC_TELEPHONE = "은 en_US.UTF-8" LC_MEASUREMENT = "은 en_US.UTF-8" LC_IDENTIFICATION = "은 en_US.UTF-8" LC_ALL ='당신은 질문을 –

+0

편집 할 수 있습니다 추가 그것. –

+0

ok 내가 그랬어, thx –