数据库创建后,数据库的默认字符集是不能修改的,可以尝试一下下面的方法
1 创建表时使用DEFAULT CHARSET = UTF8指定字符集,再插入中文查看是否乱码
CREATE TABLE TAB1 (COL XXXXXXXXXXXXXXXXXXX) ENGINE = INNODB DEFAULT CHARSET = UTF8 COMMENT 'TAB1'2 如果1方法不行的话,删库重建,重新指定数据库字符集,mysql重建数据库还是很简单的
检查并修改mysql的my.ini的配置文件default-character-set=utf8
建立数据库是要指定字符集
create database mydb default character set utf8 collate utf8_general_ci
建立数据表示也要指定字符集:
出问题的命令:
CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1
正确的命令:
CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8
插入的数据乱码有很多原因:1、你要检查一下页面的编码和数据库设置的字符集是否一样,要么都是utf8,要么都是gbk的
2、如果第一点说的两边编码是统一的,你可以在链接数据库的时候加上mysql_query("set names utf8")
3、加上之后还是不行的话,在检查你的页面编码,如果是utf8的话,请选择没有bom的utf8编码
4、以上都没问题的话,还出现乱码的话,修改mysql的配置文件,my.ini加上character-set-server=utf8,然后重启mysql服务就可以了
一般出现乱码的话,基本就是这些原因了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)