LifeType 中文開發論壇

支援 => 虛擬主機討論 => 主題作者是: oc 於 十二月 11, 2005, 11:50:33 上午



主題: [疑難]換主機商、MySQL連線校對和亂碼問題
作者: oc十二月 11, 2005, 11:50:33 上午
這陣子忙著換主機商,可惜不換還沒事,一換才發現麻煩大了。

我在新家新裝了跟舊家一樣的1.0.1,一切順利,於是開始把舊機資料庫更新到新站,更新完畢以後,到前台一看,天啊,老貓變成「耿」貓,唐諾變成「唿」諾,數位化變成數「使」化……,其他一堆轉換錯誤的文字,滿坑滿谷族繁不及備載。

起先我以為問題出在新主機商的MySQL編碼,於是我改了新站資料庫的「連線校對」設定,再試一次備份還原,錯誤依舊。不管設定是Latin1或者utf8_general_ci,資料庫還原上去,錯字還是錯字,老貓還是「耿」貓。

我實在不知道問題在哪裡,左想又想,試著在新站發一篇測試文,咦,一切正常。老貓就是老貓,不會變耿貓。不管用Latin1或者utf8發文都沒問題。

顯然新站的MySQL資料庫編碼是OK的。會不會是舊站備份出來的資料庫檔就已經有問題了呢?

於是我回到舊站,進入phpMyAdmin看一下,發現資料庫的「連線校對」設定是Latin1,我先把整個資料庫先改為utf8_general_ci,然後備份,還原到新站,沒效;再用手動把資料表一個一個改成utf8,然後重作備份,再還原,還是沒用。

我猜備份出來的壓縮檔編碼可能就已經壞掉了。於是我在舊站新增一個db,然後直接在舊站備份還原,果然──不正常(請看我在舊站的測試站 (http://b-oo-k.net/blogtest/))。跟新主機的狀況一樣,備份的資料會有錯字碼,但是新增文章則不會。

回頭檢查下載下來的壓縮檔,不管是用cPanel還是用phpMyAdmin下載下來的,解壓縮以後,裡面的文字都是亂碼,無法解回正常的utf8中文。

我真是麻煩大了,文字在MySQL裡面是好的,前台讀起來沒問題,可是倒出來的就不能用,這樣我簡直就沒辦法搬家了(除非我願意一篇一篇慢慢搬文)。這真是大麻煩啊。有誰知道這是什麼道理、有解決辦法嗎?粉慘啊。

我的主機環境:

Apache version 1.3.33 (Unix)
PHP version 4.4.0
MySQL version 4.1.13-standard
pLog 1.0.1


主題: Re: [疑難]換主機商、MySQL連線校對和亂碼問題
作者: jerome十二月 13, 2005, 06:28:14 下午
如果有 shell  可以用
請輸出成 sql 再輸入
應該就不會出錯了


主題: Re: [疑難]換主機商、MySQL連線校對和亂碼問題
作者: sea0964二月 02, 2006, 01:14:37 下午
http://www.deal13.net/modules/icontent/index.php?page=21
這邊有簡單的解決方案
只要新舊主機都能在phpmyadmin上面正常顯示中文就沒有問題