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 ));

文章標籤
創作者介紹

流浪袋鼠之家

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


留言列表 (8)

發表留言
  • 。比爾蓋飯。
  • 天書?!XD
  • 就跟我不懂設計一樣阿XD

    袋鼠 於 2012/03/14 10:18 回覆

  • 呆呆
  • 我想請問一下,我最近在mantis上碰到一個大問題,就是我不知道改到哪個設定檔後,讓我原本administrator的密碼給弄丟了,無法登入, 登入它一直顯示:你的帳號可能被暫停或封鎖或者輸入不正確的帳號密碼 = = " 而且用default password:root也無法進入
    天呀~~~~我該怎麼辦是好~~~還有個問題我的smtp mail也還沒設置好也根本不能用忘記密碼然後填寫mail回傳的 = =" orz.....



    本來要先解決mail功能的問題,結果我的administrator權限也不能用了...爬很久的文都找不到解決方法,來此請教大大了 多謝~


  • 忘記密碼的話這是小事
    直接進資料庫把password改掉就可以
    不過資料庫存的是加密過的
    所以你要先將你要的密碼加密之後才可以
    我之前忘記密碼是用這個方式處理的

    不過依你的狀況來看
    你似乎整個mantis都還沒開始設定吧
    重建可能來的快一些
    我那時會手動修改資料庫密碼是因為系統已經運作中
    不方便整個砍掉重來

    袋鼠 於 2012/05/28 20:23 回覆

  • 呆呆
  • 你好~~謝謝你的回答,不過這不是我建的mantis要重置可能不是我能作主的
    我只是因為要設定smtp mail卻不知改到哪個檔就把administrator的秘密給改到了..唉...我算新手 也不知道是要再哪隻sql程式中改回來...

    至於smtp mail的部分網路上很多設定有教學,我也照大家所說的其實也設定好了,但是還是無法能正常發mail = = orz
  • '4a7d1ed414474e4033ac29ccb8653d9b'這串是'0000'
    把這串蓋到資料庫的administrator帳號的password就好了
    資料表是mantis_user_table


    無法發送MAIL通常是你有參數設錯
    要不然用phpmailer來發還挺簡單設定的

    袋鼠 於 2012/05/29 10:58 回覆

  • 呆呆
  • 還有補充一點,我的smtp mail部分也都在/mantisbt/config_inc.php和config_defaults_inc.php這兩隻底下做修改....還有需要改哪隻嗎?

    謝謝你了~~~
  • 以下是我的設定檔,基本上這樣就可以使用了
    config_inc.php
    # --- Mail --------------------
    $g_allow_signup = ON;
    $g_enable_email_notification = ON;
    $g_phpMailer_method = PHPMAILER_METHOD_SMTP;
    $g_smtp_host = 'XXXX'; //mail Server
    $g_smtp_port = 25;
    $g_smtp_username = 'admin';//mail account
    $g_smtp_password = 'admin'; //mail password
    $g_administrator_email = 'admin@mail.com.tw'; //發送者mail
    $g_from_name = 'Mantis Bug Tracker';//mail發送者名稱
    $g_from_email = 'admin@mail.com.tw';//發送者mail

    袋鼠 於 2012/05/29 10:55 回覆

  • 呆呆
  • 謝謝你的help.....我可以再請教個問題嗎? 我還是找不到mantis_user_table放置在哪呢orz...我這邊存放所有的php檔 都在/var/www/mantisbt底下..

    還有想在問一下像因為我沒有非常了解linux底下的結構或指令呀,所以在憑估想將mantis+svn 灌在windows底下不知對我這種比起來對windows比較熟悉的人來是否比較方便...(因為我第一次接觸mantis跟svn) 也想請問在windows下應該不會在管理上那麼麻煩吧 ?! ^__^

    謝謝你~~~打擾啦
  • 我的環境是win2003+mantisBT1.2.9
    你是半途接手這個系統的吧
    mantis是搭配mysql使用的
    mantis_user_table是資料表
    要進去mysql才看的到

    mantis跟SVN在windows的建法不難
    大概半小時就可以建好吧

    袋鼠 於 2012/05/30 11:25 回覆

  • 訪客
  • 呵呵...我找到了
    mantis_user_table(username, realname, email, password, date_created, last_visit, enabled, protected, access_level, login_count, lost_password_request_count, failed_login_count, cookie_string) VALUES
    ('administrator', '', 'root@localhost', '4a7d1ed414474e4033ac29ccb8653d9b', '2011-08-31 19:11:37', '2011-08-31 19:11:37', '1', '0', 90, 3, 0, 0, 'a40d8644932c6501b93a2d049921d8f3b06a94eef9c1c4c4ecc8fc0cc2af0f01');

    您是說password改成4a7d1ed414474e4033ac29ccb8653d9b嗎? 而且怎麼後面的欄位對應不太到呀 我確定沒貼錯呢 ^^

    是呀~~我是半接手這mantis的,本來因為mail sever的問題在linux底下ip衝到之外也要我設定DNS 八拉八拉的問題很多導致MAIL發不出去之外,我更把Administrator密碼給稿不見了 唉..orz 也沒人懂就只好上網找文獻嚕~~

    謝謝~
  • 找出你本來administrator的id是多少
    然後帶到下面這個SQL
    update `mantis_user_table` set `password`='4a7d1ed414474e4033ac29ccb8653d9b' where id='1'
    這樣administrator的密碼就會改為0000了

    mantis掛在linux底下的文獻比較多的說
    多找找就有資訊了,我當初也是從網路上慢慢爬
    才把這套系統建起來,現在也還沒跟svn接上,還在研究中

    袋鼠 於 2012/05/30 15:06 回覆

  • 呆呆
  • 袋鼠....

    我可以再請教個問題嗎?!

    我因為來來回回test太多次了驗證mail的功能導致後來它出現一個錯誤訊息:
    APPLICATION ERROR #1905目前已超過系統設定的使用限制數, 請聯繫系統管理員 ??? 這該如何解決呢? 我又卡關一天了~~也還在解決administrator的密碼的問題 orz...
  • 我沒遇過這問題,如果只有administrator不能登入,建議你從user table下手看看
    mantis_user_table中有一個failed_login_count,這應該是存錯誤次數的
    看數字現在是多少,改回0應該就可以了

    我好奇的是你是怎麼測試的,官方有個測試MAIL的頁面可以用,不用自己用一堆方法測
    請參閱http://www.mantisbt.org/forums/viewtopic.php?f=3&t=15398&p=38882

    老話一句:多查些資料,mantis的官方論壇上很多資料可查

    袋鼠 於 2012/05/31 11:24 回覆

  • 路人
  • 謝謝你!!! 2.9.11版本也有csv亂碼的問題
    造你的方式修改就OK了!!!!

    好棒喔!!!
  • 當初為了亂碼處理好久
    所以做此紀錄

    袋鼠 於 2012/11/04 23:34 回覆

找更多相關文章與討論