关于数据库插入中文乱码问题

本文介绍了如何解决数据库中插入中文出现乱码的问题。通过调整MySQL配置文件my.ini中的字符集为GBK,设置客户端和数据表的字符集,并修改字段的字符集来实现中文字符的正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于数据库插入中文乱码问题

 

第一步:到数据库my.ini中查看字符集设置

需要将下的默认编码 default-character-set=utf8 改为 default-character-set=gbk ,重新启动 MySQL 服务即可

第二步:客户端设置

set names gbk;

第三步:数据表的字符设置

3.1 查看数据库状态

 status 指令

mysql> status;

--------------

mysql  Ver 14.14 Distrib 5.6.12, for Win32 (x86)

 

Connection id:          25

Current database:       information_schema

Current user:           root@localhost

SSL:                    Not in use

Using delimiter:        ;

Server version:         5.6.12 MySQL Community Server (GPL)

Protocol version:       10

Connection:             localhost via TCP/IP

Server characterset:    latin1

Db     characterset:    latin1

Client characterset:    gbk

Conn.  characterset:    gbk

TCP port:               3306

Uptime:                 8 hours 54 min 47 sec

我要使用的库test的字符集是latin1,该字符集不支持中文字符。

3.2 查看表引擎状态

mysql> show create table ttt;

+-------+-----------------------------------------------------------------------

-----------------------------------------------------------------------+

| Table | Create Table

                                                                      |

+-------+-----------------------------------------------------------------------

-----------------------------------------------------------------------+

| ttt   | CREATE TABLE `ttt` (

  `id` int(11) NOT NULL,

  `name` varchar(20) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

+-------+-----------------------------------------------------------------------

-----------------------------------------------------------------------+

 

3.3修改表字符集

mysql> alter table ttt character set utf8;

mysql> alter table ttt character set gbk;

 

Query OK, 0 rows affected (0.10 sec)

Records: 0  Duplicates: 0  Warnings: 0

 再次查看

mysql> show create table ttt;

+-------+-----------------------------------------------------------------------

--------------------------------------------------------------------------------

----------+

| Table | Create Table

 

          |

+-------+-----------------------------------------------------------------------

--------------------------------------------------------------------------------

----------+

| ttt   | CREATE TABLE `ttt` (

  `id` int(11) NOT NULL,

  `name` varchar(20) CHARACTER SET latin1 DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

 

3.4修改字段字符集:

mysql> alter table ttt modify name varchar(20) character set gbk;

 

 

第四步:插入数据。insert into  Book values(刘送杰);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值