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