程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 解決phpmyadmin 亂碼,支持gb2312和utf-8

解決phpmyadmin 亂碼,支持gb2312和utf-8

編輯:PHP綜合
解決phpmyadmin 亂碼,支持gb2312和utf-8

    群裡很多PHP愛好者一直受phpmyadmin的亂碼問題困擾.我自從有了mysql-front後,我就很少使用phpmyadmin了.但每次連接遠程主機,就比較慢.造成操作不便.今天有點時間,就下了最新的版本來研究.

首先說明我的數據庫使用情況:

phpmyadmin 版本2.7.0-pl1
(如果你使用其它版本,可能會有所不同,請對照修改或者到 這裡下載 phpmyadmin 2.7.0-pl1)

mysql版本MySQL 5.0.11-beta-nt

我在以前是使用GB2312編碼方式,直接寫入數據庫的,字符集是mysql默認的latin1

PHP5以後我寫的程序都改用UTF-8編碼方式了,也是直接讀寫的.所以字符集也應試是mysql默認的latin1

我在用PHP操作數據時 沒有 使用過以下語句:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

好,開始吧.

 把下載的ZIP包解壓到www目錄後打開文件夾...好久不見,配置文件名都從config.inc.php改成了config.default.php .

我修改了以下代碼:

31行
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpMyAdmin-2.7.0-pl1/';

45行
$cfg['blowfish_secret'] = 'this';

71行
$cfg['Servers'][$i]['auth_type']     = 'cookie';    // Authentication method (config, http or cookie based)?

接著,浏覽器打開http://localhost/phpMyAdmin-2.7.0-pl1/ 使用root登錄.language是默認的chinese simplified(zh-utf-8)

浏覽一個UTF-8的表.亂碼.

查看了html源代碼,charset=utf-8

查看他的語言選擇文件libraries/select_lang.lib.php

263行 'utf-8'        => 'utf8',

我用的是默認的latin1 所以,這裡應試改成latin1.改好保存,刷新.成功

轉到一個以前用GB2312編碼錄入的庫.是亂碼.

退出.以chinese simplified(zh-gb2312)登錄.到處看.亂碼.

和上面一樣找到libraries/select_lang.lib.php

250行 'gb2312'        => 'gb2312',

把gb2312改為latin1.保存,刷新.卻不行.還是一樣.

很納悶.查看了html源代碼,charset還是utf-8.不對呀,應試是GB2312才正常.

無意中在首頁的language下拉菜單中,發現沒有登錄時的chinese simplified(zh-gb2312)這一欄.(下圖)

不解,仔細一對,列表項都是utf-8結束的.問題應試在這.

找libraries/select_lang.lib.php裡對應的zh-gb2312,在它後面加上一個"-utf-8"

這回有了.查看了html源代碼,charset是GB2312了.

如何在兩種語言轉換呢?
我試著回到UTF-8編碼的表.沒錯,是亂碼.

轉到首頁.language下拉菜單中選擇zh-utf-8.再看看,OK了.

試著修改,添加新數據.都沒再有亂碼了.

結束:我的思路是以html的charset對照mysql的charset.

最後提醒:

如果你操作表時使用過以下語句:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

那麼你修改時libraries/select_lang.lib.php可能會有所不同.多試試幾種方式.會有不一樣的收獲.

轉載請標明出處為www.phpv.net

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved