作者jjt (jet)
看板Perl
标题Re: [问题] 抓回来的网页去除html标签後出现部份乱码
时间Wed Dec 19 00:59:38 2007
※ 引述《redmist (....N )》之铭言:
: 写了一支程式到网路上抓资料,用HTML::FormatText模组去除html标签後会出现部份
: 乱码(不是全部,甚至只有一小部份),是什麽原因呢?
: code如下
: use LWP::UserAgent;
: use HTML::Parse;
: use HTML::FormatText;
: my $ua = LWP::UserAgent->new;
: $ua->agent("MyApp/0.1 ");
: my $word = '生气';
: my $response = $ua->post(
: 'http://www.sinica.edu.tw/ftms-bin/scripts/look_for_sym.pl',
: [
: 'kw0' => $word
: ],
: );
: if ($response->is_success) {
: my $res = $response->content;
: #$res =~s/\r\n/\n/;
: $ascii = HTML::FormatText->new->format(parse_html($res));
: print $ascii;
: }
: else {
: die $response->status_line;
: }
: 印出来的部份结果如下
: (1) 书卷气
: (2) 书生气
: 共有2茼P义词
: 为何会有小部份奇怪的乱码呢?
好久没有回问题了 回一下XD
2个同义词 hex= 32 ad d3 a6 50 b8 71 b5 fc
2茼P义词 hex= 32 d3 a6 50 b8 71 b5 fc
ad在处理中被吃掉了 hex ad = '-'
虽然不知道为什麽会这样
还有有方法可以解决
1.在最前面加上
use Encode;
2.修改内文
if ($response->is_success) {
my $res = decode('big5',$response->content);
$ascii = HTML::FormatText->new->format(parse_html($res));
$ascii = encode('big5',$ascii);
print $ascii;
}
只要是中文问题 用这招通常都有效:P
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.197.133
※ 编辑: jjt 来自: 140.121.197.133 (12/19 01:00)
1F:推 redmist:可以了 真是感谢呐 12/19 12:38