現象:
一直使用的phpmyadmin3.5版本(RELEASE-DATE-3.5.0,一個做了配置最佳化的版本 phpMyAdmin_3.5_path8.net),這個版本比較簡潔,更新的pma有些臃腫。然而,在windows下使用php5.5, 及php7.0,都發現日期顯示成亂碼
方案:
檔案 libraries/common.lib.php , 行1648行
$format = __('%B %d, %Y at %I:%M %p');
改成
$format = '%Y-%m-%d %H:%M:%S';
即可,日期格式顯示格式樣本 2016-01-27 11:49:07
原因:
PMA_localisedDate函數使用了strftime()函數,該strftime函數第一個參數為日期格式,phpmyadmin來源程式使用了帶中文的格式字串;而在windows下的php版本,在做格式化時會轉成亂碼。經確認linux下沒有這個問題,pma是正常的。
補充:PHPMyAdmin中文亂碼問題很常見,主要是UTF-8和GB2312編碼不能同時正確顯示。
方法一:
1. 因為MySQL的預設編碼是latin1,所以首先我們需要修改一下PHPMyAdmin的編碼轉換。修改libraries目錄下面的select_lang.lib.php檔案,將 'utf-8' => 'utf8'修改成'utf-8' => 'latin1'。
2. 接下來還要修改一下頁面的編碼顯示,將 'zh-gb2312' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh')修改成 'zh-gb2312-utf-8' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh'), 也就是在zh-gb2312後面增加-utf-8,這樣頁面編碼就支援UTF-8了。
3. 首先選擇zh-gb2312-utf-8進入PHPMyAdmin,這個時候瀏覽GB2312編碼的資料正常,但是瀏覽UTF-8的資料是亂碼。如果瀏覽UTF-8的資料的話,進入首頁,然後在Language裡面選擇zh-utf-8就可以了。
4. 預設的語言編碼很長,你可以將其他編碼用/**/注釋掉,只保留zh-gb2312-utf-8和zh-utf-8兩個編碼。
方法二:
也可以修改phpMyAdm的inconfig.inc.php設定檔,將$cfg['Lang'] = 'en-utf-8'改成$cfg['Lang'] = 'zh-gb2312'這樣問題就解決了。