我有一个perl脚本,我更新从tvrage下载图像。但我有一个问题。 这是我遇到问题的代码行:
system "wget -P '/home/user/script/cache/posters' $imgurl";
它通常可以正常工作,但有时会因同样的错误而失败。
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/
我找到的问题是wget改变'和'到â
A /家庭/用户/脚本/缓存/海报/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从'和'变为?
提前感谢您的帮助!
语言环境的输出是:
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 :(得分:0)
不是wget
改变角色
字符编码似乎设置错误。
当实际编码为UTF-8
时,可能是,但设置为其他内容,将引号显示为字符â
是典型的症状。有时会跟着更多的角色。
因此,如果将编码设置为UTF-8
,它应该可以正常工作。
-
命令locale
的输出是什么?
背景资料:
http://askleo.com/why_do_i_get_odd_characters_instead_of_quotes_in_my_documents/
谷歌搜索“引用”给出了一些好的结果。