使用iconv.exe转码工具升级数据库使用心得
时间:2006-12-09 来源:bridge2006
**使用iconv.exe转码工具升级数据库使用心得:
最近帮别人重新搞PHP后台的程序,需求方要求保留原MySQL数据库资料,因为原来MySQL数据库字符集为latin1格式,前在页面为Big5码,在使用上存在些问题,因此打算将数据库字符集改为Big5或Utf8格式。
1. 在MySQL中以原数据库字符集导出数据库结构及数据(root为mysql根用户,密码为123)
mysql>mysqldump -uroot -p123 --skip-quote-names --default-character-set=latin1 --comment=1 -B mpeghk >mpeghkdb.sql
2. 使用Iconv将mpeghkdb.sql中的繁体汉字码,转换后打开new.sql会看到繁体字的政党显示,非乱码。
iconv -t utf-8 -f big5 -c mpeghkdb.sql > new.sql
此处不是: iconv -t utf-8 -f latin1 -c mpeghkdb.sql > new.sql
3.修改new.sql,在前面加入Set names=’utf8’; 并且将Create database 后面的CHARACTER SET latin1 COLLATE latin1_swedish_ci; 改为CHARACTER SET utf8 COLLATE utf8_general_ci,如果没有就加上。
4.导入数据库
mysql> mysql –uroot –p123 < new.sql
至此升级成功,关键之处就在于修改建库文本为相应字符集,不要忘记加上set names ‘字符集’。如果要将数据库升级为Big5字符集,不需将步骤2,只在步骤3作相应的修改,将utf8改为big5, utf8_general_ci改为big5_chinese_ci,再执行步骤4即可。 但是在导成big5导入数据时可能会有非法字符至少导入不成功,可以将部分行注释掉或骈掉一些非法字符再导入,转成utf8格式产生此类问题较少,比较安全.。
ICONV.exe下载地址:http://gnuwin32.sourceforge.net/
另外还有一些小工具也有如此强大的功能,我特荐使用ConvertZ:GB/BIG5/UTF-8 文件编码批量转换程序 工具,相当好用,可以至此人的博客下载。http://www.pc-soft.cn/blogview.asp?logID=6
截图:
500)this.width=500;" border=0>