phpmyadmin匯出資料中文亂碼問題

來源:互聯網
上載者:User

標籤:ar   sp   for   on   檔案   資料   問題   bs   ad   

phpMyAdmin版本是2.9.1.1

用phpMyAdmin備份資料庫,匯出來後,在本地用sqlyog還原的時候,出現如下錯誤:
Error occured at:2009-03-03 10:09:43
Line no.:11154
Error Code: 1062 - Duplicate entry ‘??????‘ for key 2

開啟sql檔案看了下,會員表下的會員使用者名稱是亂碼,全都是類似於???,????的,因為現在很多程式都支援中文使用者名稱了,而使用者名稱又是唯一的,中文使用者名稱變成亂碼後,就出現很多相同的使用者名稱,而我們匯入這些出現亂碼的資料時,前面已經有??????這個使用者名稱了,所以下面出現第二個就報錯了

 

如果有系統的控制權,可以用如下命令匯出資料,就不會出現亂碼,還原時是正常的
mysqldump -uroot -p --default-character-set=utf8 --set-charset --skip-opt dbname > newdbname.sql

但現在只能用phpMyAdmin匯出,測試了好久,發現如果phpMyAdmin的Language為"中文-chinese simplified-gb2312"時,匯出來的sql檔案是gb2312的,某些表裡有中文,中文為亂碼,當phpMyAdmin的Laguage為"中文-chinese simplified(也就是utf8)"時,匯出來的sql檔案字元集是utf8的(用Notepad++查看格式,顯示是UTF-8無BOM格式編碼),表裡的中文可以正常顯示

所以,為避免匯出來的檔案裡中文是亂碼,可以從Language下拉式功能表中,選擇中文-chinese simplified,然後再選擇匯出,下載回來的sql檔案中的中文就可以正常顯示了。

用如下命令還原
mysql -uroot -p --default-character-set=utf8 newdbname < newdbname.sql

本來想把phpMyAdmin的預設Language修改為“中文-chinese simplified",但試過修改config.inc.php和libraries目錄下的config.default.php都沒有用,沒關係了,畢竟不同人選擇資料庫的編碼都不一樣的,總是有人要重新選擇一下語言,還是讓它預設是“中文-chinese simplified-gb2312”吧!

猜測另外一種解決辦法是,匯出來的檔案編碼是gb2312,所以可以考慮將gb2312轉換為utf8.此方法實驗中。

phpmyadmin匯出資料中文亂碼問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.