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