mysql中文输入问题

涉及到中文问题,大多都是编码类型的问题啦。
我们首先看看默认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~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换...
    x360阅读 2,498评论 1 20
  • 不到万不得已就将就着看本文吧,别看原文了.错别字多就算了,到后面还有还多语句的示例代码都张冠李戴了.当然,本文可能...
    Airmole阅读 1,688评论 0 4
  • 第7天·21天OH卡颜瘦身课 #玩卡不卡·每日一抽# 每一位都可以通过这张卡片觉察自己: 1、直觉他叫什么名字?L...
    Evayaoyu阅读 124评论 0 0
  • 我最喜欢的一款产品是下厨房,它是一个有一定厨艺的人和美食爱好者的记录、分享平台 我喜欢它有三点原因 第一 它首先满...
    思考者01阅读 2,796评论 0 3