各位下載了 Xoops utf8 版安裝後, 一定會發現資料庫儲存是
latin1_swedish_ci 的格式, 而不是 utf8_unicode_ci;
若你的資料庫是 Mysql 3.2x 的還沒關係, 但若是 Mysql 4.1x
的支援多國語言的, 那就會有影嚮了!
以下這個方法, 讓你的資料存入 MySQL 4.1x or 5.x 時,
全部都以 utf8 來儲存!
注意!!:
A. 當你要安裝新 module 時, 全部都要作第一步驟。
B. 升級新版 Xoops 時, 要確定第二步驟內三行指令還在。
不然就會出現問題! 如: 選 變成 口 , 而且 phpmyadmin
看到都是亂碼了!
開始吧!
1. \install\sql\mysql.structure.sql
在每一個 CREATE TABLE 的底下, 約 30 多個吧...
找到:
----------------
TYPE=MISAM;
----------------
改成:
----------------
TYPE=MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
----------------
2. \class\database\mysqldatabase.php
找到 function connect($selectdb = true) 的最後一行
return true; 的上面加上以下三行
----------------
@mysql_query("SET NAMES utf8");
@mysql_query("SET CLIENT CHARACTER utf8");
@mysql_query("SET CLIENT RESULTS utf8");
----------------
這樣一來, phpmyadmin 裡, 連線校對選用 utf8_unicode_ci;
結果 OK, phpmyadmin 內看到的資料都是 utf8 編碼,
而且顯示完全正常, 不會有亂碼了!
我已試著安裝 Xoops 2.0.13 utf8 版之後, 確認沒亂碼,
在 phpmyadmin 內看到編碼都是 utf8 且顯示正常。
我把 Xoops 資料庫 dump 一份出來,
又把 Xoops 資料庫砍掉, 接著用 phpmyadmin 把資料倒回
檢查, 一切都都沒問題哦!!
試試看囉, 應可安心服用!
Stonez