歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 22, 2024, 09:54:24 下午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  虛擬主機討論  |  [疑難]換主機商、MySQL連線校對和亂碼問題 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: [疑難]換主機商、MySQL連線校對和亂碼問題  (閱讀 15555 次)
oc
版主
一般會員
*****
文章: 115


檢視個人資料 個人網站
« 於: 十二月 11, 2005, 11:50:33 上午 »

這陣子忙著換主機商,可惜不換還沒事,一換才發現麻煩大了。

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

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

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

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

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

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

回頭檢查下載下來的壓縮檔,不管是用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
« 最後編輯時間: 十二月 11, 2005, 05:43:35 下午 由 老貓 » 已記錄

jerome
新手見習
*
文章: 42



檢視個人資料 個人網站
« 回覆文章 #1 於: 十二月 13, 2005, 06:28:14 下午 »

如果有 shell  可以用
請輸出成 sql 再輸入
應該就不會出錯了
已記錄

歡迎光臨,惡人最多之 BeB
http://beb.anyday.com.tw/
sea0964
新手見習
*
文章: 16


檢視個人資料 個人網站
« 回覆文章 #2 於: 二月 02, 2006, 01:14:37 下午 »

http://www.deal13.net/modules/icontent/index.php?page=21
這邊有簡單的解決方案
只要新舊主機都能在phpmyadmin上面正常顯示中文就沒有問題
已記錄

頁: [1]
LifeType 中文開發論壇  |  支援  |  虛擬主機討論  |  [疑難]換主機商、MySQL連線校對和亂碼問題 « 上篇主題 下篇主題 »
    前往: