一個perl腳本可以從網站中刪除靜態html頁面,並將它們寫入單個文件,但似乎也可以正常工作,但也會將多個wide character in print at ./script.pl line n
實例打印到控制檯:每個頁面都會被刮掉一個。如何找到perl打印的「寬字符」?
但是,簡單瀏覽一下生成的html文件並不會在刮擦中發現任何明顯的錯誤。我如何查找/修復問題字符?我是否應該關心修復它?
相關的代碼:
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
...
foreach (@urls) {
$mech->get($_);
print FILE $mech->content; #MESSAGE REFERS TO THIS LINE
...
這是OSX用Perl 5.8.8。
我在這裏處理純html。我可以做任何事情來檢查我已經擁有的文件,或者是我唯一的選擇,從'binmode(FILE,「:utf8')''開始重新開始,在'open FILE etc'之後插入嗎? – 2010-07-29 17:13:26
它不是您唯一的選擇,你可以在一個cmd中用'open(my $ fh,'>:utf8',...)'來完成。有很多問題可以導致這個問題,請閱讀[這篇博客文章](http:// www.ahinea.com/en/tech/perl-unicode-struggle.html)。 – 2010-07-29 18:15:52
感謝您的鏈接,但該文章還只涉及如何防止此問題,而不是如何評估其嚴重性,以及如何解決它發生後,這是我的問題的重點。 – 2010-07-29 19:40:09