1 頁 (共 3 頁)

[問題]mysql亂碼以及登入登出亂碼

發表於 : 2007-05-05 18:48
jellyice
問題外掛:無安裝外掛
參考連結:無安裝外掛
使用版本:phpBB 2.0.22(Language Pack分成竹貓的跟phpbb.com的)
網站位置:http://www.gamelife.idv.tw
狀況描述:

各位大大安,小弟前陣子在Host Gator租了個虛擬主機,然後第一次試架phpbb

本來以為有架成功,但後來發現,我前端網頁的中文是顯示正常,但是用phpmyadmin去查資料庫時,裡面的中文字都是亂碼。

我昨天跟今天爬了很多文,也有一些人是跟我一樣的情況,但他們所說的解決方法我一一試過後卻都不行,我也重灌過很多次,也在db.php的最後一行?>之前加過
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");

mysql_query("SET NAMES 'UTF8'");
但是都沒有用,另外我發現用phpbb的備份資料庫功能備份出來的sql檔,裡面的中文會是正常的,所以我試著把資料庫刪了,然後用phpbb的還原資料庫把資料匯入,可是用phpmyadmin打開一看,一樣是亂碼。

如果直接用phpmyadmin把資料匯出成sql檔,中文會顯示成亂碼。使用cpanel的資料庫備份功能備份出來的檔案,裡面的中文也會是亂碼,只有用phpbb備份出來的才會是中文。

然後我想說會不會是竹貓的phpbb2.0.22有問題,也有去phpbb的官網再下載一次,一樣的情況。

另外就是,我後來換成phpbb.com下載的phpbb2.0.22時,會變成無法匯入用竹貓的phpbb備份的資料庫,只要匯入了,就會變成ISO編碼的英文版本,而且按下重新整理後,就會出現以下訊息:
phpBB : Critical Error
Could not locate valid language pack

為什麼會這樣呢?還是因為phpbb.com上只有提供big5碼的中文language pack?而竹貓的是utf-8?但是我安裝好phpbb.com的中文版時,ie的編碼是顯示utf-8的沒有錯。

說到這,我發現,phpbb.com下載的2.0.22,在論壇頁面時編碼是顯示utf-8,但在後台時卻是顯示big5,這算是bug嗎?這樣我在後台輸入的中文到底是big5編碼的還是utf-8編碼的?(後台以big5輸入完後,前端頁面的utf-8顯示中文卻是正常的)

另外還有,我在db.php中加上了mysql_query("SET NAMES 'UTF8'");這行的話,我在phpbb後台打的中文在送出後都會變成「?」,前端也都顯示「?」

至於登入登出亂碼的問題,我發現,只要開啟了GZip檔案壓縮格式功能,那麼每次按下登出或登入時,ie會變成以big5編碼,所以整個頁面就都是亂碼,必須按一次重新整理才會恢復正常;而只要關閉了GZip功能,就不會有這種情形,請問這是個bug嗎?該怎麼解決呢?

抱歉,我講得滿亂的,因為這個問題也的確滿亂的...全部雜在一起我都不知道該怎麼辦好了,所以只好來發文問問各位大大,請告訴我到底該怎樣才能正常的安裝好嗎?謝謝。

感謝樓下的大大的提醒,不知道這樣子是不是正確的格式?

補充:
開啟GZip,會員登入後出現亂碼畫面:
圖檔

開啟GZip,已登入會員登出後出現亂碼畫面:
圖檔

phpmyadmin的首頁:
圖檔

phpmyadmin資料亂碼畫面:
圖檔

phpbb_forums的結構上半部:
圖檔

phpbb_forums的結構下半部:
圖檔

整個資料庫的結構:
圖檔

發表於 : 2007-05-05 19:03
心靈捕手

發表於 : 2007-05-05 21:10
chiouss
加了 set names utf8 以後如果有正確運作,你原本的舊資料會變成亂碼,你沒有用 utf8 輸入進去的非英文資料也會是亂碼,如果你什麼亂碼都沒看到表示你的修改有問題。

另外,不是所有的版本都是加上 set names utf8 就可以用,請先搞清楚什麼狀況要怎麼去修改再動手。

發表於 : 2007-05-05 22:41
jellyice
chiouss 寫:加了 set names utf8 以後如果有正確運作,你原本的舊資料會變成亂碼,你沒有用 utf8 輸入進去的非英文資料也會是亂碼,如果你什麼亂碼都沒看到表示你的修改有問題。

另外,不是所有的版本都是加上 set names utf8 就可以用,請先搞清楚什麼狀況要怎麼去修改再動手。
我原本的舊資料就是亂碼,所以才會想加set names utf8啊@_@"

另外...我是重灌時加了set names utf8的,所以裡面什麼資料都沒有,我之所以會知道加了set names utf8不可行,是如我上面所說的,加了以後只要輸入中文,全部會變成「?」,跟本連亂碼都稱不上...

至於版本,如上所說我用的是phpbb 2.0.22,還是phpbb 2.0.22還有細分很多種版本呢?

Re: [問題]mysql亂碼以及登入登出亂碼

發表於 : 2007-05-06 07:06
心靈捕手
jellyice 寫:問題外掛:無安裝外掛
參考連結:無安裝外掛
使用版本:phpBB 2.0.22(Language Pack分成竹貓的跟phpbb.com的)
網站位置:http://www.gamelife.idv.tw
狀況描述:

各位大大安,小弟前陣子在Host Gator租了個虛擬主機,然後第一次試架phpbb

本來以為有架成功,但後來發現,我前端網頁的中文是顯示正常,但是用phpmyadmin去查資料庫時,裡面的中文字都是亂碼。
昨晚睡前, 試著下載phpbb.com的Language Pack
發現已經是 (正體中文) utf-8 碼了.

若要說其與 竹貓 最大的差別, 則在與適用的 phpBB2 的版本有異;
前者適用 2.0.21 版, 而後者則適用最新版 2.0.22

建議您:
1. 若要下載語言包, 則以 竹貓 公告為主.
2. 目前看您的論壇 '中文是顯示正常' 採用 utf-8 編碼;
若您 '用phpmyadmin去查資料庫時,裡面的中文字都是亂碼',
則建議您, 貼出 'phpmyadmin 首頁截圖'.

發表於 : 2007-05-06 15:13
chiouss
jellyice 寫:我原本的舊資料就是亂碼,所以才會想加set names utf8啊@_@"
喔,我沒說清楚。我是說,如果你沒轉過資料庫的資料,直接加上 set names utf8 的話會造成你瀏覽論壇的時候原本的內容變成亂碼,這個現象可以作為你加上去的敘述有沒有被正確地執行到的一個判斷依據。

應該只有在你資料庫的內容也是 utf8 && 你的 phpBB 語系也是 utf8 && 資料庫輸出設定也是使用 utf8 這三種同時成立的情況下你才不會看到亂碼會看到正確的內容。

發表於 : 2007-05-06 16:03
jellyice
chiouss 寫:
jellyice 寫:我原本的舊資料就是亂碼,所以才會想加set names utf8啊@_@"
喔,我沒說清楚。我是說,如果你沒轉過資料庫的資料,直接加上 set names utf8 的話會造成你瀏覽論壇的時候原本的內容變成亂碼,這個現象可以作為你加上去的敘述有沒有被正確地執行到的一個判斷依據。

應該只有在你資料庫的內容也是 utf8 && 你的 phpBB 語系也是 utf8 && 資料庫輸出設定也是使用 utf8 這三種同時成立的情況下你才不會看到亂碼會看到正確的內容。
嗯 了解了,謝謝大大。
雖然我設set names的時候,論壇上都沒資料,不過我想光是後台因此沒辦法輸入中文,全部變成「?」,就可以代表我這樣設是錯誤的,對吧?
還是是因為我set names放的地方不對呢?我是放在db.php的倒數第二行的地方。
還有沒有其他方法可以讓資料庫變正常呢?

Re: [問題]mysql亂碼以及登入登出亂碼

發表於 : 2007-05-06 16:06
jellyice
心靈捕手 寫: 昨晚睡前, 試著下載phpbb.com的Language Pack
發現已經是 (正體中文) utf-8 碼了.

若要說其與 竹貓 最大的差別, 則在與適用的 phpBB2 的版本有異;
前者適用 2.0.21 版, 而後者則適用最新版 2.0.22

建議您:
1. 若要下載語言包, 則以 竹貓 公告為主.
2. 目前看您的論壇 '中文是顯示正常' 採用 utf-8 編碼;
若您 '用phpmyadmin去查資料庫時,裡面的中文字都是亂碼',
則建議您, 貼出 'phpmyadmin 首頁截圖'.
嗯,我的論壇中文是顯示正常的,只有在會員登入完之後,以及已登入的會員登出的時候,才會變成亂碼。(開啟GZip的情況下)

貼圖我加到第一篇的補充內容裡了,謝謝大大。

發表於 : 2007-05-06 17:12
kkt
jellyice, 這問題前幾天才在此提問過, 你可參考一下.

http://phpbb-tw.net/phpbb/viewtopic.php?p=256922#256922


=========

如果你資料庫已是亂碼, 那麼再怎樣加set names utf8 已無用處的.

更何況 db.php 衹是一個導向文件.

=========

依我成功經驗, 你反正是新架, 就乾脆按我那篇做一次.

如不成功我直接把整個 SQL 導出給你灌進去.
這樣你祇需改回 admin 即可.

但前提是你現在論壇的資料會丟失 (假如有的話)

你願意一試可留言.

Re: [問題]mysql亂碼以及登入登出亂碼

發表於 : 2007-05-06 19:17
心靈捕手
jellyice 寫:
心靈捕手 寫: 昨晚睡前, 試著下載phpbb.com的Language Pack
發現已經是 (正體中文) utf-8 碼了.

若要說其與 竹貓 最大的差別, 則在與適用的 phpBB2 的版本有異;
前者適用 2.0.21 版, 而後者則適用最新版 2.0.22

建議您:
1. 若要下載語言包, 則以 竹貓 公告為主.
2. 目前看您的論壇 '中文是顯示正常' 採用 utf-8 編碼;
若您 '用phpmyadmin去查資料庫時,裡面的中文字都是亂碼',
則建議您, 貼出 'phpmyadmin 首頁截圖'.
嗯,我的論壇中文是顯示正常的,只有在會員登入完之後,以及已登入的會員登出的時候,才會變成亂碼。(開啟GZip的情況下)

貼圖我加到第一篇的補充內容裡了,謝謝大大。
您的論壇 '語系設定' 有問題?

1. 相關修改建議, 貼圖如下:
圖檔

當然, 您必須先確定底下的論壇語系編碼為 utf-8
language/lang_chinese_traditional_taiwan/*.*

2. 當您做好相關的修正後, 進入後台 (版面管理 -> 管理選項)
試試重新編輯 '版面名稱', '版面描述'.

3. 完成上述動作後, 再進入 phpMyAdmin 瀏覽資料表 phpbb_forums 是否顯示正常?

4. 若仍有問題, 則建議您:
刪除舊資料庫與論壇資料夾, 一切重新來過!

發表於 : 2007-05-06 23:21
jellyice
kkt 寫:jellyice, 這問題前幾天才在此提問過, 你可參考一下.

http://phpbb-tw.net/phpbb/viewtopic.php?p=256922#256922


=========

如果你資料庫已是亂碼, 那麼再怎樣加set names utf8 已無用處的.

更何況 db.php 衹是一個導向文件.

=========

依我成功經驗, 你反正是新架, 就乾脆按我那篇做一次.

如不成功我直接把整個 SQL 導出給你灌進去.
這樣你祇需改回 admin 即可.

但前提是你現在論壇的資料會丟失 (假如有的話)

你願意一試可留言.
大大您好,您的那篇文章我發問前就已經看過多次,我也照著做過多次,如我第一篇所說,我已經重灌過大概十來次了,但是始終不成功,可能我有什麼地方沒看懂所以弄錯了。

不過把整個SQL導出讓我灌進去,我再改回admin,這是什麼意思呢?我不太了解。

Re: [問題]mysql亂碼以及登入登出亂碼

發表於 : 2007-05-06 23:27
jellyice
心靈捕手 寫: 您的論壇 '語系設定' 有問題?

1. 相關修改建議, 貼圖如下:
圖檔

當然, 您必須先確定底下的論壇語系編碼為 utf-8
language/lang_chinese_traditional_taiwan/*.*

2. 當您做好相關的修正後, 進入後台 (版面管理 -> 管理選項)
試試重新編輯 '版面名稱', '版面描述'.

3. 完成上述動作後, 再進入 phpMyAdmin 瀏覽資料表 phpbb_forums 是否顯示正常?

4. 若仍有問題, 則建議您:
刪除舊資料庫與論壇資料夾, 一切重新來過!
大大您好,我的語系會有兩個,是因為同時裝了竹貓的跟phpbb.com的中文language pack,不過這跟資料庫亂碼沒有關係,不管是只裝竹貓還是只裝phpbb.com還是兩個都裝,資料庫都一樣是亂碼,我試過多次了。

另外,我也曾經"多次"把所有資料庫跟所有phpbb的資料夾及檔案刪光,然後重安裝一個全新的空白的phpbb,情形依然是一樣的,不論如何,輸入中文,資料庫就會是亂碼。

因為我的後台是cpanel,好像不能修改php.ini或my.ini或一些其他的設定檔案(也可能是我不知在哪修改),我在想,是不是一些mysql基礎設定的問題呢?

發表於 : 2007-05-07 00:13
kkt
jellyice, 反正你是新架的, 把 phpMyadmin 登入 pm 給我一試吧.

然後我通知你改回 config.php 就好了.

發表於 : 2007-05-07 01:36
jellyice
kkt 寫:jellyice, 反正你是新架的, 把 phpMyadmin 登入 pm 給我一試吧.

然後我通知你改回 config.php 就好了.
唔...我聽不太懂,什麼是登入pm?改回config.php又是什麼意思?

發表於 : 2007-05-07 03:16
kkt
jellyice, 我是說假如你方便的話, 把:

phpMyadmin 的登入名稱帳號及登入密碼
用私人訊息傳給我.

之後我會代你把 phpBB2.0.22 utf-8 的資料導入

然後你再修改 phpBB/config.php 這個檔案, 登入資料及資料庫IP
也可代你寫入.

正常情況下, 我用 utf-8 導入之後, 你的論壇原來的主題及文章會變為亂碼.
但這就正常了, 因為之前你論壇根本不是以 utf-8 來謮取.
而祇是給了 IE 讀成 utf-8 而已.

然後把主題及文章用編輯改回中文. 或干脆刪掉.
這樣就成功了. (因為我已反覆試了多次)

如不方便就不必了.