Oct 18
mysql乱码完美解决方案
学习
mysql默认的字符集多是latin1,如果你的程序是以utf-8的文件编码形式写入数据到数据库(同时之前没有mysql_query("set names utf8")),那么你用phpmyadmin打开看到的就是一堆的乱码了,然后更新与备份数据库时经常是乱码一堆.
经过测试,此问题得以解决,方法如下:
mysqldump -uroot -p --default-character-set=latin1 --skip-opt mydb>mydb.sql
即:备份数据时,要和原来的字符集一致.
在phpmyadmin中建立新的数据库,在phpmyadmin中设置:
language: chinese simplified (zh-utf-8)
MYSQL字符集: UTF-8 Unicode (utf8)
MYSQL连接校对: utf8_general_ci
在导入SQL数据库时,使用如下命令:
mysql -uroot -p --default-character-set=utf8 -f mydb
补充一点:
在还原到的新表mydb时,创建这个表的时候,用 Create DATABASE `mydb` DEFAULT CHARACTER SET utf8;
另外:table的auto_increment类型的数据怎么清0,只需:set insert_id = 1
经过测试,此问题得以解决,方法如下:
mysqldump -uroot -p --default-character-set=latin1 --skip-opt mydb>mydb.sql
即:备份数据时,要和原来的字符集一致.
在phpmyadmin中建立新的数据库,在phpmyadmin中设置:
language: chinese simplified (zh-utf-8)
MYSQL字符集: UTF-8 Unicode (utf8)
MYSQL连接校对: utf8_general_ci
在导入SQL数据库时,使用如下命令:
mysql -uroot -p --default-character-set=utf8 -f mydb
补充一点:
在还原到的新表mydb时,创建这个表的时候,用 Create DATABASE `mydb` DEFAULT CHARACTER SET utf8;
另外:table的auto_increment类型的数据怎么清0,只需:set insert_id = 1
最新评论及回复