最近幾天用mysql5.0.27數據庫出現了很多次中文亂碼問題。
特別是昨天,不小心把整個數據庫數據全部搞成亂碼了,郁悶了好半天,終于恢復了。
數據庫:mysql5.0.27
界面工具一:SQLyog Enterprise v5.19
界面工具二:MySQL-Front v3.2.14.3
編輯工具:UltraEdit-32
問題描述
?????????安裝mysql時設置默認編碼為gbk,使用[工具一]連接,連接編碼為gbk,建表錄入數據正常。
?????????需求在其它機器上新建相同數據庫,使用[工具一]生成.sql備份文件,用同樣[工具一]在其它機器上導入該.sql文件,出現亂碼。
?????????如果是導入文件執行會經常出現錯誤(不明原因),需要把代碼拷貝到編輯區執行。注意,導出文件的編碼格式為utf-8的,直接拷代碼會拷不進去,這時需要用UE32轉換編碼為ASC2碼才能拷入。執行成功,但顯示會出現亂碼。
解決方法
?????????將mysql默認編碼改為utf-8,數據庫默認編碼最好設為utf-8,以后安裝的時候都用它就行了。使用[工具二]連接,連接編碼為gbk,同樣把轉過的ASC2編碼的代碼拷入sql編輯區,執行,成功。后面把[工具二]的連接改為gbk或者utf-8,都會顯示正常。
總結
?????????主要原因是將數據庫設為了gbk的后,導出備份文件時將文件中代碼的編碼設成了utf-8的,表里的一些備注等中文信息則會變成亂碼,直接用文件導入時會報錯,后轉換編碼搞亂了。
?????????試驗了一下,使用[工具一]將導出的utf-8文件轉碼成ASC2后再拷入編輯區執行是不可行的(兩種連接utf-8,gbk都會產生亂碼)。所以使用[工具一]最好是直接導入utf-8編碼的.sql文件。不要把代碼轉碼后拷入執行。如果導入執行報錯,找到錯誤信息,修改。修改不了就使用[工具二],[工具一]生成的.sql文件語法[工具二]可以使用。
?????? 然后又試驗了[工具二],這個工具須將編碼轉換成ASC2后打開(不然會在編輯區就看到亂碼)連接須設置為gbk,其它情況都會報sql錯誤。
posted on 2007-03-03 15:55
小祝 閱讀(1438)
評論(11) 編輯 收藏 所屬分類:
數據庫