Home > TaiBIF > TAPIRLINK 進行中文資料 mapping 的修改

TAPIRLINK 進行中文資料 mapping 的修改

January 7th, 2010 Leave a comment Go to comments

  在”如何利用TAPIR進行中文資料的mapping”文章中告訴各位如何利用 TAPIRLINK 軟體分享資料中的中文欄位,但是因為檔案的遺漏跟錯誤,於是 TaiBIF 進行了一些修正,如果您有對映 http://140.109.29.92/tapirlink/darwinxml/darwin_c.xml 這個檔案的話請您先按圖一中的 unmap 按鈕後再依照”如何利用TAPIR進行中文資料的mapping”重新對映一次。

圖一
圖一

  筆者本身的測試網站為 http://localhost/tapirlink070/,環境是 Windows XP+Apache+PHP+MySQL。在新增資源時,如圖二畫面對映中文欄位。

圖二
圖二

  新增資源完畢後緊接著再查看資料分享的狀況。筆者開了一個 IE 瀏覽器在網址列中打入了http://localhost/tapirlink070/www/tapir.php/TFRI?op=s&f=(http://rs.tdwg.org/dwc/dwcore/ScientificName%20like%20%22Abaciscus%20costimacula%22)&m=http://rs.tdwg.org/tapir/cs/dwc/1.4/model/dw_core_geo_cur.xml,畫面中出現的一筆資料如圖三。

圖三
圖三

  奇怪不是說會有中文資料嗎,為什麼還是一樣沒有呢?在筆者輸入網址的最後一個參數 m=http://rs.tdwg.org/tapir/cs/dwc/1.4/model/dw_core_geo_cur.xml 代表的是我們希望查詢後,根據 http://rs.tdwg.org/tapir/cs/dwc/1.4/model/dw_core_geo_cur.xml 決定每筆資料會有哪些欄位,在 dw_core_geo_cur.xml 中並沒有 TaiBIF 新增的中文欄位,所以 TaiBIF 又新增了一個 output model http://140.109.29.92/tapirlink/model/output_record.xml,讓查詢結果會有中文資料。
  接著筆者又在網頁瀏覽器的網址列輸入 http://localhost/tapirlink070/www/tapir.php/TFRI?op=s&f=(http://rs.tdwg.org/dwc/dwcore/ScientificName%20like%20%22Abaciscus%20costimacula%22)&m=http://140.109.29.92/tapirlink/model/output_record.xml 發現 TaiBIF 新定義的中文欄位果然跑出來了,但是只要是中文資料的話,中文字都會變成”?”符號。
  先前提到,筆者本身用的資料庫是 MySQL,要從 MySQL 資料庫中取出 UTF-8 編碼的中文字時要先執行一個動作 “SET NAMES ‘utf8’;”,所以我找到了 TAPIRLINK 程式的 classes\TpDataSource.php,在第324行開始加入下列程式碼:
// added for Chinese
if ((‘mysqlt’ == $this->mDriverName) && (‘UTF-8’ == $this->mEncoding))
{
$this->mConnection->Execute(“SET NAMES ‘utf8’;”);
}
存檔後刪除 TAPIRLINK 快取,重新在瀏覽器網址列中輸入http://localhost/tapirlink070/www/tapir.php/TFRI?op=s&f=(http://rs.tdwg.org/dwc/dwcore/ScientificName%20like%20%22Abaciscus%20costimacula%22)&m=http://140.109.29.92/tapirlink/model/output_record.xml 範例結果如圖四。

圖四
圖四

  這麼一來我們就可以使用 TAPIRLINK 分享資料的中文欄位了。

Categories: TaiBIF Tags: ,
  1. No comments yet.
  1. No trackbacks yet.