mysql中文乱码的解决方法

mysql编码格式查询和修改

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

参数说明:
character_set_client为客户端编码方式;

character_set_connection为建立连接使用的编码;

character_set_database数据库的编码;

character_set_results结果集的编码;

character_set_server数据库服务器的编码;

初始的mysql,会出现查询结果中文乱码,用中文作为参数查询不到数据的情况,只要保证以上四个采用的编码方式一样,就不会出现乱码问题,也可以用中文正常查询。

mysql> select * from SECURITY_ROLE limit 1;
+----------------------------------+---------------------+-------------+------------+-------+------------+
| ID                               | CREATE_TIME         | DESCRIPTION | IDENTITY   | NAME  | SUPERVISOR |
+----------------------------------+---------------------+-------------+------------+-------+------------+
| ff8080815c7cf447015c7cf4824a0066 | 2017-06-06 18:30:17 | ?????       | SUPERVISOR | ????? |           |
+----------------------------------+---------------------+-------------+------------+-------+------------+
1 row in set (0.00 sec)

修改编码:
set names utf8;等同于:
set character_set_client=utf8;
set character_set_results=utf8;
set character_set_connection=utf8;

mysql> 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/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

之后就可以正常查询了:

mysql> select * from SECURITY_ROLE limit 1;
+----------------------------------+---------------------+-----------------+------------+-----------------+------------+
| ID                               | CREATE_TIME         | DESCRIPTION     | IDENTITY   | NAME            | SUPERVISOR |
+----------------------------------+---------------------+-----------------+------------+-----------------+------------+
| ff8080815c7cf447015c7cf4824a0066 | 2017-06-06 18:30:17 | 超级管理员 | SUPERVISOR | 超级管理员 |           |
+----------------------------------+---------------------+-----------------+------------+-----------------+------------+
1 row in set (0.00 sec)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值