Re: [問題] 轉換網頁內容編碼
※ 引述《Nicky0908 (王建民加油!)》之銘言:
: 因為有些網頁為big5編碼,有些則為utf-8編碼,我想將utf-8編碼的網頁轉成big5。
: 我已經知道怎麼將utf-8編碼字串轉成big5編碼,但因為無法確定網頁內容到底是utf-8還是big5
: 所以無法轉換,我有試著要抓charset的內容。但有些網頁charset設為big5,網頁內容還是utf-8。
: 請問有解決的方法嗎?還是有function可以判斷字串內的文字是big5還是utf-8嗎?
您可以先不考慮來源是 big5 還是 utf8,先用 Text::Iconv
來轉換,再透過傳回值是否為 undef 來判斷轉換過程是否有
錯誤。像是來源本來就是 big5 或是 (方方土) 之類的問題,
都會造成轉換過程的錯誤。
#!/usr/bin/perl -w
#
use strict;
use warnings;
use Text::Iconv;
#
sub main
{
# Text::Iconv->raise_error(0);
my $converter = Text::Iconv->new("utf8", "big5");
my $conv_str;
my $retval;
my $str;
my $count = 0;
while (<STDIN>) {
$str = $_;
$count++;
$conv_str = $converter->convert($str);
$retval = $converter->retval();
if (defined($retval)) {
printf("%s", $conv_str);
}
else {
printf("LINE %d: Cannot convert from utf8 to big5!\n", $count);
}
}
}
main();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.64.130
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章