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,才能正常呈現 (ro01)
但改為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
你可以參考看看我的做法...
http://chiouss0817.wordpress.com/2006/0 ... -to-utf-8/

發表於 : 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
chiouss 寫:你可以參考看看我的做法...
http://chiouss.wordpress.com/2006/02/18 ... -to-utf-8/
感謝您的回答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
建議你:

1. 參考這兩篇
http://www.phpbb-tw.net/phpbb/viewtopic.php?t=42358
http://pb.idv.tw/phpbbutf8/index.html

2. 輔助:
http://www.phpbb-tw.net/phpbb/viewtopic ... 405#224405

3. 相關的參考資料
http://www.phpbb-tw.net/phpbb/viewtopic ... 111#223111

4. 免空只是用來練習, 付費空間你當然可以找到很多便宜^^