今天写了一个数据转化的脚本,特别注意每个数据进进出出的字符集编码,防止出现乱码的情况,结果在mysqldump上没注意,还是出现了乱码,从网上查询后,语法记录如下
mysqldump –default-character-set=’gb2312′ -u$db1 -p$db1 $db1 $tmptable –skip-opt –compact -t >> $filename
其实在mysqldump –help中已经有解释
--default-character-set=name
Set the default character set.
--skip-opt Disable --opt. Disables --add-drop-table, --add-locks,
--create-options, --quick, --extended-insert,
--lock-tables, --set-charset, and --disable-keys.
--compact Give less verbose output (useful for debugging). Disables
structure comments and header/footer constructs. Enables
options --skip-add-drop-table --skip-add-locks
--skip-comments --skip-disable-keys --skip-set-charset
-t, --no-create-info
Don't write table creation info.
另在sql查询的语句中,也是先设置字符集,如
sql="set names gb2312;
select aa,bb,cc from bb
where aa=0
and ( bb like '%$line%' or cc like '%$line%')"
mysql -u$user1 -p$pass1 $db1 -e "$sql"
mysql --default-character-set='gb2312' -u$user1 -p$pass1 $db1 < $filename