Re: [問題] 轉換網頁內容編碼

看板Perl作者時間17年前 (2008/06/05 09:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #18HpmA_T (Perl)
討論串 (同標題文章)
文章代碼(AID): #18HpmA_T (Perl)