通常安裝好XOOPS 2  資料庫都是 latin1  ,但是中文在phpMyAdmin 會變成亂碼,

因為XOOPS 的中文是用 latin1 將中文存到 phpMyAdmin , 而不是 UTF-8

作法:

1.將phpMyAdmin改成讓中文可以正常顯示 #phpMyAdmin\libraries\select_lang.lib.php 

'utf-8'        => 'utf8',   ->    'utf-8'        => 'latin1',  就可以暫時正常顯示

2.資料庫匯出   參考步驟三

3.將"資料表檔"載入

 

步驟一:

1. mysql 设定:
/etc/my.cnf (或 Windows 下的 my.ini) 要有以下设定:

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
init_connect='SET NAMES utf8'

 

步驟二:

2. 在 xoops 端,先前已有各位前輩在本論壇告知大家要在
xoops/class/database/mysqldatabase.php 加入以下這行:
@mysql_query("SET NAMES 'utf8'", $this->conn);
(加此行在 $result = mysql_query($sql, $this->conn); 之前)
就可以強制用 utf8 傳輸。

 

步驟三:

3. mySQL 數據庫:
可是若有舊的 database 怎麼辦? 照上面的方法改了之後,邁入 xoops 後以前所有的中文字都變亂碼了,新輸入或重新輸入的中文字才會變正常顯示。
沒關係,照以下的步驟,就能將以前的數據庫轉碼了:

先采以下方法將數據庫 dump 出:

mysqldump -u [資料庫帳號] -p[資料庫密碼] --default-character-set=latin1 [資料庫名稱] > [檔名].sql



修改 dump.sql 文件首頁的:
/*!40101 SET NAMES latin1 */;
成為
/*!40101 SET NAMES utf8 */;


然後再將數據庫 import 回即可:
mysql -u root -p < dump.sql

重新打開 xoops 看,中文一切 OK。進入 phpMyAdmin 看,也都沒有亂碼了。

 

步驟四:

在phpMyAdmin 中 建立 資料表  , 在上方列 直接按  載入 剛剛輸出的資料表  [檔名].sql  就大功告成

 

備註:

不知道為什麼 使用

    mysql -u [資料庫帳號] -p[資料庫密碼] < [資料庫檔案名稱].sql

    mysql -u [資料庫帳號] -p[資料庫密碼]  --default-character-set=binary [資料表名稱] <  [資料庫檔案名稱].sql

會一直失敗

arrow
arrow
    全站熱搜

    halladay5364 發表在 痞客邦 留言(0) 人氣()