作者liyih ()
看板Perl
标题Re: [问题] 中文网页的问题
时间Wed Nov 4 09:02:44 2009
※ 引述《abcg5 (nothing)》之铭言:
: 有点白痴的问题
: 就是我抓了中文wikipedia的网页 (编码 UTF8
: 但是print 在萤幕上就一直是乱码
: 试了很多种编码!
: 目前效果最好 也应该是正确的是下面的转码方式
: encode("gb2312", decode("utf8", XXX)) ---- A
: encode("big5", decode("utf8", XXX)) ---- B
: 还是有些问题
: 主要是网页是繁中简中参半(html code才看得出来
: EX:
: 假设网页中有
: Wikipedia:免责声明 这两个字串
: 免责声明
: 分别使用A和B两种方式 结果如下
: Wikipedia:轿孮汒陇
: 免责声明
: 都使用B方式
: Wikipedia:免??明
: 免责声明
: 只用A就不用说了...根本是失败!!
: 我已经知道抓到的资料哪些是简中哪些是繁中
: 所以想请教 如何能避免这种奇怪的错误?? 谢谢!!
试着使用 Encode::HanConvert 来作繁简的转换吧,假设您只是要做
汉字间的转换。在输出上可使用同一种编码方式。不同大小的字元集
之间作转换,就可能发生对应问题。
==== han.pl ================================================
#!/usr/bin/perl -w
#
use strict;
use warnings;
use LWP::UserAgent;
use Encode;
use Encode::HanConvert;
my $str = "";
my $ua = LWP::UserAgent->new;
$ua->env_proxy;
#my $response = $ua->get('
http://zh.wikipedia.org/zh-tw/');
my $response = $ua->get('
http://zh.wikipedia.org/');
if ( $response->is_success ) {
$str = $response->content;
print trad_to_big5( Encode::HanConvert::trad( decode( 'utf-8', $str ) ) );
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.64.130