第一步,导出旧库
mysqldump --default-character-set latin1 -uroot -pXXX --database db > /tmp/old.sql
第二步,转换编码
iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql
第三步,导入新库
修改new.sql,增加一条sql语句: "SET NAMES utf8;",保存。
mysql -hlocalhost -uroot db < new.sql
来自:PHP高级技术群 8745758
Gbk编码导出这个Mysql的注释也就对了:
而存入的时候是:
要想显示 正常,需要在Mysql Client输入:
再select数据也就正常了。是表存的内容是latin1,而这个表结构的注释是gbk编码的,所以这块还是多少有一些问题;
证明:
1,只导出数据:
mysqldump --default-character-set gbk -t db_adc t_tst_sum_info > /tmp/old.sql 理论是乱码,实践出也是乱码。
mysqldump --default-character-set latin1 -t db_adc t_tst_sum_info > /tmp/old.sql 理论上是正常,实践也是正常。
充分说明这个表的结构注释和表内容是不一样的,要想一样,得统一为lation,或者gbk,但历史原因都是lation,所以,统一为lation较好。
最后:尽管说明这样两种编码是可以的,但是还是可以统一为lation的,线上我也就发现是可以的。
mysqldump --default-character-set latin1 -uroot -pXXX --database db > /tmp/old.sql
第二步,转换编码
iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql
第三步,导入新库
修改new.sql,增加一条sql语句: "SET NAMES utf8;",保存。
mysql -hlocalhost -uroot db < new.sql
来自:PHP高级技术群 8745758
Gbk编码导出这个Mysql的注释也就对了:
而存入的时候是:
要想显示 正常,需要在Mysql Client输入:
再select数据也就正常了。是表存的内容是latin1,而这个表结构的注释是gbk编码的,所以这块还是多少有一些问题;
证明:
1,只导出数据:
mysqldump --default-character-set gbk -t db_adc t_tst_sum_info > /tmp/old.sql 理论是乱码,实践出也是乱码。
mysqldump --default-character-set latin1 -t db_adc t_tst_sum_info > /tmp/old.sql 理论上是正常,实践也是正常。
充分说明这个表的结构注释和表内容是不一样的,要想一样,得统一为lation,或者gbk,但历史原因都是lation,所以,统一为lation较好。
最后:尽管说明这样两种编码是可以的,但是还是可以统一为lation的,线上我也就发现是可以的。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4980/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2012-2-15 10:09
评论列表
2012-2-23 13:07 | jglsa8813
让版主看后决定加精固顶的好帖
2012-2-23 01:11 | hxngb0of
楼主说得好,支持一下
2012-2-22 06:32 | lucy08891
让版主看后决定加精固顶的好帖
2012-2-19 11:18 | hxngb0jf
谢谢楼主的共享,我同意楼主的看法
2012-2-19 05:10 | qq337897
我只是来看看,顺便点几下。。。。
2012-2-19 02:03 | yuanmai82965
想想那些就可气总有一天会消失的
分页: 1/1 1