第 1 頁 (共 1 頁)
[問題]PHPBB/phpMyadmin big5及utf8轉碼問題
發表於 : 2006-03-23 13:56
由 sakurasnow
近來因為魔獸世界公會的需求,用PHPBB架了一個討論區供公會成員交流使用
原架設的免費空間為:
http://sakurawow.wagoo3.com/
PHPBB 2.0.19(Big-5)
phpMyAdmin 2.6.4-pl3
MySQL 版本 4.1.15
並且每天以PHBB內建的資料庫備份功能進行備份
在當時,使用免費空間提供的phpMyadmin檢視TABLE,即出現亂碼的現象,但網頁呈現沒有問題,故不予理會,繼續開心的使用討論區(駝鳥心態)
有天............免費空間掛點了,再也無法使用上述連結進去Q_Q
我連到phpmyadmin將資料庫再次備份(管理)
並至另一免費空間重新申請,結果........該空間限制網頁編碼僅能用utf-8
不管我在PHP如何修改,換頁後均是亂碼,不得已,只好將PHP編碼改為utf-8
但原先備份下來的資料,在還原回資料庫後,網頁呈現均是亂碼!!
除非,我將網頁編碼改為Big5,才能正常呈現
但改為Big5...又受限為免費空間編碼鎖定為utf-8 Q_Q
http://sakurawow.10e.net/
PHPBB 2.0.19(utf8)
phpMyAdmin 2.7.0-pl2
MySQL 版本 4.1.14
天吶>"< 我該怎麼辦........不管怎麼改都有亂碼Q_Q
又不想重建那些討論區資料,考慮到免費空間不穩定..甚至想租用dreamhost
但........若目前資料庫還原及呈現的問題無法解決,申請新空間也沒助益Q_Q
懇請諸位高手們幫忙,拜託了>"< (泣
發表於 : 2006-03-23 19:26
由 appleboy
這個問題很好解決
PHPBB 2.0.19(utf8)
phpMyAdmin 2.7.0-pl2
MySQL 版本 4.1.14
你phpmyadmin 選擇utf-8 編碼來匯入資料庫
這樣你去看資料 就會正常了
也就是說 你在瀏覽phpMyadmin時 也是用utf-8去看
你匯入資料的話 也會變成utf-8
把每個資料表都改成utf-8吧
發表於 : 2006-03-24 00:46
由 chiouss
發表於 : 2006-03-24 14:52
由 sakurasnow
appleboy 寫:這個問題很好解決
PHPBB 2.0.19(utf8)
phpMyAdmin 2.7.0-pl2
MySQL 版本 4.1.14
你phpmyadmin 選擇utf-8 編碼來匯入資料庫
這樣你去看資料 就會正常了
也就是說 你在瀏覽phpMyadmin時 也是用utf-8去看
你匯入資料的話 也會變成utf-8
把每個資料表都改成utf-8吧
謝謝您的解答Q_Q.. 但是..~ 在使用您的方法之後......phpmyadmin裡的TABLE依舊為亂碼
另外,網頁呈現的部份...........還是亂碼Q_Q
除非我將網頁切換成繁體中文,則資料庫倒出來的資料才會變成"繁體中文"
但網頁編碼又全壞了.......................變成亂碼
目前慘狀請看
http://sakurawow.10e.net/
點選"會員列表" 就會.............一團亂>O<..
嗚嗚 好煩啊..
發表於 : 2006-03-24 15:00
由 sakurasnow
感謝您的回答Q_Q
但是..有幾個不是很了解的~~~
以下是您的網頁提到的東西
===============
接下來把之前的 phpbb2 資料庫用
mysqldump -default-character-set=latin1 -u root -p phpbb2 > phpbb2.sql
把裡面的東西先丟出來 (記得備份),檔案最前面加上
SET NAMES utf8;
然後另存新檔成 utf8 (不要加 BOM),再丟回 mysql
mysql -u root -p phpbb2 < phpbb2.utf8.sql
看到的東西應該就正常了。當然,原本的 mysql_connect 的地方記得要在後面加上
@mysql_query('SET NAMES utf8;', $connect);
==================
想請教一下,我目前是使用"免費空間"
也就是我所有作業僅能在phpmyadmin使用~
故....................
mysqldump -default-character-set=latin1 -u root -p phpbb2 > phpbb2.sql
會出現
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysqldump -default-character-set=latin1 -u root -p 9434 > phpbb2
是否與免費空間的限制有關係呢? ^_^"
發表於 : 2006-03-24 17:42
由 appleboy
上面那位大大 說得指令 都是在unix底下下的指令
所以你用phpmyadmin是錯誤的
把每個table 的 語言預設值 改成utf-8也是可以的
代碼: 選擇全部
CREATE TABLE `count_record` (
`id` int(11) unsigned NOT NULL auto_increment,
`time` int(11) unsigned NOT NULL default '0',
`ip` varchar(15) NOT NULL default '127.0.0.1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=16178 ;
看到 CHARSET=utf8 這個吧 把每個表格 都改成這樣
發表於 : 2006-03-24 19:59
由 chiouss
sakurasnow 寫:
想請教一下,我目前是使用"免費空間"
也就是我所有作業僅能在phpmyadmin使用~
如果你的 phpBB 裡面 php code 的部分什麼都沒有動過的話,用 phpBB 的資料庫備份功能試試看,如果有動過的話就不保證出來的東西會正常了。
然後,沒事不要
在沒有備份的情況下亂改你 database 的 collation,改到最後裡面的內容會被轉成什麼東西都不知道 (本來塞進去就已經被設定成錯誤的 charset 了,再改又再轉一次,越錯越多...),最後可能就回不來了。這是我自己的慘痛經驗...
發表於 : 2006-03-30 00:58
由 wu2017
我之前與你有相同問題,最近已經可以正常顯示,目前持續測試中;我懷疑你是否漏掉以下這步驟:
開啟 ./includes/db.php
尋找
?>
在之前增加
$db->sql_query("SET NAMES utf8;");
$db->sql_query("SET CHARACTER_SET_CLIENT=utf8;");
$db->sql_query("SET CHARACTER_SET_RESULTS=utf8;");
以上提供你參考試試 ^^
發表於 : 2006-03-30 07:51
由 jwxie