欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mysql无法插入中文的问题如何解决?

程序员文章站 2022-04-12 20:17:57
Mysql无法插入中文的问题如何解决? 无法插入中文的根本原因是因为字符编码不一致。 在创建数据库的时候可以指定一个字符编码,如果想要支持中文,可以使用utf-8,或者gb23...

Mysql无法插入中文的问题如何解决?

无法插入中文的根本原因是因为字符编码不一致。

在创建数据库的时候可以指定一个字符编码,如果想要支持中文,可以使用utf-8,或者gb2312,值得一提的是gb2312编码中,一个中文占2个字节,而utf-8中一个中文占3个字节。

mysql中,如果你不知道你当前的字符编码,可以通过查看variables,来知晓你所使用的字符编码。

show variables like 'char%'
+--------------------------+-----------------------------------------------------------+
| Variable_name            | Value                                                     |
+--------------------------+-----------------------------------------------------------+
| character_set_client     | utf8                                                      |
| character_set_connection | utf8                                                      |
| character_set_database   | utf8                                                      |
| character_set_filesystem | binary                                                    |
| character_set_results    | utf8                                                      |
| character_set_server     | latin1                                                    |
| character_set_system     | utf8                                                      |
| character_sets_dir       | /usr/local/mysql-5.7.21-macos10.13-x86_64/share/charsets/ |
+--------------------------+-----------------------------------------------------------+

在解决无法向表中插入中文之前,我们先设置一下表的字符编码:

alter table (your table name) default character set utf8

在设置完毕后,你发现还是不能插入中文。

我们在接着设置需要插入的字段的字符编码,假如我现在要往S里插入一个学生的信息,里面包括了Sname字段,表示学生的名字,需要用中文表示,于是我通过设置Sname的字符编码来解决这个问题

alter table (your table name) Sname varchar(5) character set utf8

现在试试?是不是能完美的插入中文了呢