Mantis Bug Tracker匯出CSV檔亂碼問題

前陣子建的Mantis Bug Tracker近日有同事反應匯出csv有亂碼
在這邊記錄一下做個備忘
以免下次有問題不知道要怎麼處理
在處理的時候也順便把MantisBT從1.2.5更新到最新的1.2.9了
也還有dokuwiki和SVN要整合
反正不急,就找時間慢慢弄

系統環境:
phpMyAdmin-2.10.3
(Apache2.2+MySQL+php5)
MantisBT 1.2.9

主要發生的原因還是因為編碼的問題
UTF-8格式下的csv檔用excel開啟的時候會有亂碼
所以寫個轉換的function做編碼的轉換
把UTF-8轉為中文的Big5問題就可以解決
我完全沒學過php,也還好寫法不難,要不然我還真不知道怎辦

Mantis 目錄下的csv_export.php

增加一個新函式,轉換編碼用
#Convert Encoding
function transEncoding($str)
{
     return mb_convert_encoding($str, "Big5", "UTF-8");
}

搜尋檔案中的下列項目並修改
基本上就將原先直接輸出的資料多加上一個轉換的動作而已

1.
echo $t_header 
修改為 
echo transEncoding($t_header);

2.
echo csv_escape_string( $t_value );
修改為
echo csv_escape_string(  transEncoding($t_value) );
 
3.
echo $t_function( $t_row );
修改為
echo transEncoding($t_function( $t_row ));

arrow
arrow

    袋鼠 發表在 痞客邦 留言(8) 人氣()