关于mysql中文插入 问号??问题的解决方法!
数据库安装的时候会让你选择未来创建库的时候用什么默认字符集,当 然这个当初不记得也没有关系
-
我们也可以自己修改
MySql安装目录下面的my.ini(MySQL Server Instance Configuration 文件)。 设置 default-character-set=gbk(注意,有2处[mysql]和[mysqld])[mysql]
default-character-set=gbk[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/Develop/MySQL/MySQL Server 5.0/"
#Path to the database root
datadir="D:/Develop/MySQL/MySQL Server 5.0/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=gbk
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB这里修改为utf8也可以,但一定要注意,如果你是用doc命令窗口插入数据,由于doc命令窗口和系统的字符集保持一致,中文系统是gbk,那么向表中存入数据就会乱码了
修改以上的信息后重启数据库服务,在计算机,管理,服务中
之后通过doc打开你的数据库,查看数据库字符集即可查看,下列查看语句
红色标记的位置是我们主要修改的位置-
你也可以通过下列语句查看你所创建的数据库和表的字符集
1、查看数据库字符集:
show create database mydbname;
更改数据库字符集:
alter database mydbname default character set utf8;
2、查看数据库表的字符集:
show create table mytable;
更改数据库表的字符集:
alter table mytable default character set utf8; 上述的方法是解决mysql不能存中文的问题,如果你没有这些操作,那么存入中文总会报异常
Data truncation: Data too long for column
但实际上,有些人发现,中文数据是能存入的,但中文部分全部显示???关键!下面我们来说明,能存入中文,但是显示???问号的问题
其实答案很简单,这种情况通常是你已经创建的数据库和表并不是默认字符集
即使你按照1-5的做法完成了设置,但是你之前使用mysql所创建的数据库和表,根本不是gbk的,而还是更改之前的默认字符集,你可以通过5的语句查询验证是否这样,如果是这样,那么很简单,删了重新创建,那么再次存入的数据就能正常显示了