美文网首页
mysql中文输入问题

mysql中文输入问题

作者: 爱你会吃醋 | 来源:发表于2016-03-31 23:05 被阅读14次

涉及到中文问题,大多都是编码类型的问题啦。
我们首先看看默认mysql创建表后使用的编码类型是什么吧。
下图中我们首先创建了一个表test。

create table test(name char(20);
3DAB6F0C-AC53-4134-BA44-FEA01C55C838.png

然后我们可以使用命令

SHOW FULL COLUMNS FROM 表名;

来查询各个列的编码类型。
我们创建的表只有一列name,从图中可以看到该列的collation的值为latin1_swdish_ci,这是一种拉丁编码类型,要想显示中文,需要使用到utf-8编码类型。


我们可以先试试在这种拉丁编码下是否可以插入中文数据。
例如我们使用

insert into test values('张三');

我们会发现,插入操作遇到了error,即并不能插入成功。

5CBCA151-8D98-4BE2-8B20-6B158EB67DDD.png

接下来,我们试试如何将该列的编码更改为utf-8类型。

alter table test change name name char(20) character set utf8 collate utf8_general_ci;

如下图所示:

9FD6BB20-0007-417C-B9BB-F51D740EFBE0.png

此时,我们再次查看name列的编码类型:
可以看到,此时编码类型已经变为了UTF-8。

60DC08F6-6F7B-4EB5-A3D2-A3906022958B.png

下面我们再试试,此时能否插入中文数据:
可以看到,此时已经成功将‘张三’插入了表中。

95FE8353-A0DD-4250-9B4D-012568849BBE.png

打印出表中的所有行,可以看到确实已经成功插入。


12C4CCBF-0AA5-42D2-9C39-C11F76D1EFD8.png

说明这种方法是奏效的。但是每次创建表时,默认编码都是拉丁编码,如果每次都需要手动修改编码类型,似乎是一件非常繁琐的事情。所以我们来看看是否有什么办法来让创建表时,默认编码类型为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~~

相关文章

网友评论

      本文标题:mysql中文输入问题

      本文链接:https://www.haomeiwen.com/subject/wslelttx.html