问题描述:原始创建的数据库和表都是CHARSET=latin1,导出(指定格式和不指定格式都尝试)数据库,
导入(指定格式和不指定格式都尝试)另外机器的数据库,结果乱码!!
原因分析:由于原始导出的.sql文件中的CHARSET都是 Latin1格式,在导出时,指定格式--default-character-set=utf8并不管用
我是直接将.sql 脚本文件中的字符编码格式转成 utf8.如下是我记录的步骤
导出数据库:
$>mysqldump -u root -p123 --default-character-set=latin1 shop > /root/shop.sql
$>sed -e 's/SET NAMES latin1/SET NAMES utf8/g' -i /root/shop.sql
$>sed -i -e 's/CHARSET=latin1/CHARSET=utf8 COLLATE=utf8_unicode_ci/g' /root/shop.sql
$>vi /root/shop.sql (查看是否转换成功)
$>cp /root/shop.sql /media/sf_Public/
导入数据库:
mysql> create database shop character set utf8 collate utf8_unicode_ci;
$> mysql --default-character-set=utf8 -u root -p shop < ./shop.sql