之前提到,聯合報系u2u新聞交換的作法是使用 Java Script 的 document.write() 語法,可以做到在頁面上以 include 的方式達到新聞標題的交換,不過在之前實測的結果,因為目前Big5與UTF-8兩套傳統繁體中文的編碼方式都被普遍使用,而在我這樣一個以UTF-8編碼的網站上,便出現了引用時編碼錯誤的問題。
不過這個問題是可以(暴力)解決的,如以下範例。
EncodeString($data);
}
fclose($fp);
?>
瞧!這樣顯示就正常了。
之前提到的錯誤狀況就像這樣,如果你用的是mozilla瀏覽器,沒有問題,不過IE就會發生錯誤:
作法是這樣的,因為我網站上都是 php 頁面,而剛好對岸有朋友開發出一套將各種不同的中文編碼做轉換的 php 函數,叫做 Encoding,可以在
此下載,而說明則在此。
下載解壓縮後,請修改encoding.inc.php這個檔案中var $FilePath=這一行,指定到存放各種編碼資料檔所在目錄的名稱。另外也修改預設的轉碼設定,在上述檔案中修改大概第三行還是第四行的地方,改成這樣:
var $GetEncoding=”5″;
var $ToEncoding=”2″;
然後在使用u2u時,改用以下程式碼。請注意,include這一行也是要指定到encoding.inc.php 的所在位置
<?php
include (‘/…………/encoding.inc.php’);
$fp = fopen("http://udn.com/NASApp/u2u/ShowNews?site_id=20030607032227395&cid=1",
"r");
$CharEncoding=new Encoding();
while(!feof($fp)){
$data = fgets($fp, 80);
echo $CharEncoding->EncodeString($data);
}
fclose($fp);
?>
</SCRIPT>
搞定,收工。