程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 使用mysqldump對數據庫進行備份的亂碼問題

使用mysqldump對數據庫進行備份的亂碼問題

編輯:MySQL綜合教程

使用mysqldump對數據庫進行備份的亂碼問題   最近在做項目的工程中,由於系統中需要提供數據庫備份的功能,經過網上一番搜索,覺得采用簡單的mysqldump (1)java代碼 [java]  <span style="font-size:14px;">String backupSQL = "cmd /c mysqldump -urootdd --extended-insert=false  -hlocalhost fts> "                       + DB_BACKUPFILE_PATH + " ";               Runtime runtime = Runtime.getRuntime();               System.out.println(runtime.exec(backupSQL));</span>   通過執行上面的代碼段的出來的文件中,中文部分都已亂碼出現,起初懷疑是數據庫的編碼有關,於是通過以下方式來查詢數據庫的編碼 (2) >show variables like 'character%';

  經過以上步驟可以確定數據庫的編碼是沒有問題的,經過再次網上搜索 得到如下結論 "如果MySQL服務器上的字符集是 latin1 或者其他的的,mysqldump 出來的中文都是亂碼!一個簡單的辦法是加上默認字符集選項,如: mysqldump [-h 127.0.0.1 -P 3307 ] -u username --default-character-set=gbk -p databasename > dumpfile.txt, --default-character-set 知道數據內容是中文時可以指定為 gbk,這樣即使數據庫本身設置字符集為 latin1 出來的文件中文也能正常!", 最後將代碼改成如下形式 (3)最終java 代碼 [java]  <span style="font-size:14px;">String backupSQL = "cmd /c mysqldump -urootdd --default-character-set=gbk --opt --extended-insert=false  -hlocalhost fts> "                       + DB_BACKUPFILE_PATH + " ";               Runtime runtime = Runtime.getRuntime();               System.out.println(runtime.exec(backupSQL));</span>     經過以上修改,終於搞定,導出的文件中的中文時正常顯示的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved