程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 完善轉換MySQL的字符集 處理檢查utf8源文件中的亂碼成績

完善轉換MySQL的字符集 處理檢查utf8源文件中的亂碼成績

編輯:MySQL綜合教程

完善轉換MySQL的字符集 處理檢查utf8源文件中的亂碼成績。本站提示廣大學習愛好者:(完善轉換MySQL的字符集 處理檢查utf8源文件中的亂碼成績)文章只能為提供參考,不一定能成為您想要的結果。以下是完善轉換MySQL的字符集 處理檢查utf8源文件中的亂碼成績正文


MySQL從4.1版本開端才提出字符集的概念,所以關於MySQL4.0及其以下的版本,他們的字符集都是Latin1的,所以有時刻須要對mysql的字符集停止一下轉換,MySQL版本的進級、升級,特殊是進級MySQL的版本,為了不讓法式持續沿用Latin1字符集以後對今後Discuz!版本進級的影響和裝置SupeSite,這就須要我們停止字符集的轉換!
自己轉換過很多多少數據了,也用過了很多多少的方法,小我感到最好用的就是應用MySQL敕令導出導入中將字符集轉換曩昔!
如今我將用圖文並茂的方法向年夜家展現一下若何將MySQL字符集停止轉換,因為字符集比擬多,如今重要舉GBK和Latin1這兩種字符集之間的轉換!
起首我將講授一下若何將MySQL從GBK轉換為Latin1的(假如是UTF8或許BIG5轉換行將GBK換成響應的字符集便可)!這類成績常產生在MySQL從MySQL4.1及其以上版本轉換為

MySQL4.1以下的版本的進程中!有的人圖個便利,特殊是有主機權限的,直接將MySQL的data目次下的文件拷貝曩昔了,如許形成的成績就是亂碼成績!固然我所說的這些都請求你必

須具有主機權限,虛擬主機用戶可以在當地搭建好服裝論壇t.vhao.net,下載數據到你的當地,然後把數據導入到你當地的數據庫,然落後行字符集的轉換!
如今的步調就是將MySQL的數據導出了,在mysql的敕令提醒符下(linux體系為mysql的敕令目次下),輸出上面導出的敕令:
mysqldump -uroot -p --default-character-set=gbk --set-charset=latin1 --compatible=mysql40 --skip-opt discuz>discuz.sql
如圖1(windows下)和圖2(linux下)所示



如許就輕松的將數據從MySQL數據庫中導出了,此時導出的文件在與mysql敕令同級的目次下,即bin目次下,並且曾經將MySQL字符集導出為Latin1的了!如今要做的就是將數據導

入MySQL4.0中去!
異樣在4.0版本的mysql敕令提醒符下(linux體系為mysql的敕令目次下),輸出上面導入敕令:
mysql -uroot -p --default-character-set=latin1 -f discuz<discuz.sql
如圖3(window下)和圖4(linux下)所示



如許就將字符集從GBK轉為Latin1同時將MySQL從4.1以上版本的轉為MySQL4.0的了!
如今講授一下若何從Latin1字符集轉換為GBK的!
因為只要MySQL4.1以上的版本才有字符集的概念,所以假如你要將MySQL4.0的字符集從Latin1轉換為GBK字符集的話,必需導入到MySQL4.1以上的版本中,然後再導出!這外面就多

了一個導出為Latin1的步調!
異樣在MySQL4.0的敕令提醒符下,輸出上面導出的敕令:
mysqldump -uroot -p --default-character-set=latin1 --set-charset=latin1 --skip-opt discuz>discuz.sql
然後導入到MySQL4.1中,輸出上面導入的敕令:
mysql -uroot -p --default-character-set=latin1 -f discuz<discuz.sql
然後在MySQL4.1下轉換字符集,分離輸出上面導出和導入的敕令:
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt discuz>discuz.sql
mysql -uroot -p --default-character-set=gbk -f newdiscuz<discuz.sql
假如不出成績的話,那末轉換就終了了!其實全部進程照樣比擬簡略的,只是進程看起來比擬費事些,然則進程倒是很簡略清楚明了的!
上面舉出一個在導入進程中極易輕易湧現的成績!
在導入的時刻輕易湧現unknown command '/'如許的毛病,其實這是因為MySQL在導出的時刻,它有時刻給一些繁體字前面主動加上了個反斜槓形成的!處理此成績的方法就是翻開

備份的sql(這裡為discuz.sql),提醒毛病的時刻會提醒詳細哪行湧現了毛病,找到那行,把反斜槓去失落就好了!其實你可以用Ultraedit這些文本處置的對象,批量的行止理這些反斜槓

!憑小我經歷,有許多用戶名取的比擬怪,如許就輕易湧現反斜槓,如許只需改正那些用戶名就好了!
以上是小我在轉換數據進程中的一些經歷之談,許多處所還有待年夜家完美!
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved