Heim > Datenbank > MySQL-Tutorial > Hauptteil

使用mysqldump对数据库进行备份的乱码问题_MySQL

WBOY
Freigeben: 2016-06-01 13:32:29
Original
1063 Leute haben es durchsucht

mysqldump

bitsCN.com

使用mysqldump对数据库进行备份的乱码问题

 

最近在做项目的工程中,由于系统中需要提供数据库备份的功能,经过网上一番搜索,觉得采用简单的mysqldump

(1)java代码

[java] 

String backupSQL = "cmd /c mysqldump -urootdd --extended-insert=false  -hlocalhost fts> "  

                    + DB_BACKUPFILE_PATH + " ";  

            Runtime runtime = Runtime.getRuntime();  

            System.out.println(runtime.exec(backupSQL));  

通过执行上面的代码段的出来的文件中,中文部分都已乱码出现,起初怀疑是数据库的编码有关,于是通过以下方式来查询数据库的编码

(2) >show variables like 'character%';


使用mysqldump对数据库进行备份的乱码问题_MySQL
 

经过以上步骤可以确定数据库的编码是没有问题的,经过再次网上搜索 得到如下结论

"如果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] 

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));  

 

经过以上修改,终于搞定,导出的文件中的中文时正常显示的

bitsCN.com
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage