涉及到中文问题,大多都是编码类型的问题啦。
我们首先看看默认mysql创建表后使用的编码类型是什么吧。
下图中我们首先创建了一个表test。
create table test(name char(20);
然后我们可以使用命令
SHOW FULL COLUMNS FROM 表名;
来查询各个列的编码类型。
我们创建的表只有一列name,从图中可以看到该列的collation的值为latin1_swdish_ci,这是一种拉丁编码类型,要想显示中文,需要使用到utf-8编码类型。
我们可以先试试在这种拉丁编码下是否可以插入中文数据。
例如我们使用
insert into test values('张三');
我们会发现,插入操作遇到了error,即并不能插入成功。
接下来,我们试试如何将该列的编码更改为utf-8类型。
alter table test change name name char(20) character set utf8 collate utf8_general_ci;
如下图所示:
此时,我们再次查看name列的编码类型:
可以看到,此时编码类型已经变为了UTF-8。
下面我们再试试,此时能否插入中文数据:
可以看到,此时已经成功将‘张三’插入了表中。
打印出表中的所有行,可以看到确实已经成功插入。
说明这种方法是奏效的。但是每次创建表时,默认编码都是拉丁编码,如果每次都需要手动修改编码类型,似乎是一件非常繁琐的事情。所以我们来看看是否有什么办法来让创建表时,默认编码类型为utf-8;
一开始我查阅很多资料,很多资料需要修改mysql的配置文件,显得比较复杂,而且一旦配置出错,会让我这种小白不知所措的!
下面我们来介绍一种较为简单的方法,就是在创建database时指定默认的字符集。
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
这样,在该数据库下创建的所有表都默认是utf8字符集的啦!
这个的方法是从这位博主这里知道的,http://blog.csdn.net/tyuttjx/article/details/26576041
O(∩_∩)O~~