Mysql中执行SET NAMES utf8这条SQl的作用

1)首先,Mysql服务器的编码和数据库的编码在配置文件my.ini中设置;
用记事本打开配置文件,修改代码:default-character-set=utf8,这里
保证了Mysql服务器以及数据库的编码是utf8;

2)打开Mysql的命令行客户端,执行SQL:
show variables like '%character%',结果有这几个编码集
character_set_client | gbk
character_set_connection | gbk
character_set_database | utf8
character_set_filesystem | binary
character_set_results | gbk
character_set_server | utf8
character_set_system | utf8

3)现在查看某张表里面带有中文的数据时,没有乱码,也可以插入中文数据
+---------+--------------+----------
| type_id | type_name | parent_id
+---------+--------------+----------
| 1 | 编程语言       | 0
| 2 | 静态编程语言 | 1
| 3 | 动态编程语言 | 1
| 4 | JavaScript   | 2
| 5 | Shell           | 2
| 6 | Perl            | 2
| 7 | C             | 3
| 8 | C++          | 3
| 9 | Java           | 3
| 10 | 呵呵呵      | 3

4)执行SQL:SET NAMES utf8,之后,在查看编码集
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem | binary
character_set_results | utf8
character_set_server | utf8
character_set_system | utf8

5)这时候再来查看带有中文的数据,就出现乱码了
type_id | type_name | parent_id
---------+--------------------+-----------
1 | 缂栫▼璇?█       | 0 |
2 | 闈欐佺紪绋嬭?瑷 | 1 |
3 | 鍔ㄦ佺紪绋嬭?瑷 | 1 |
4 | JavaScrip         | 2
5 | Shell               | 2
6 | Perl                 | 2
7 | C                    | 3
8 | C++                | 3
9 | Java                | 3
10 | 鍛靛懙鍛µ       | 3

而且也不能插入中文数据;

6)存数据的过程是:client->connection->server
取数据的过程是:server->connection->result

7)所以这三者
character_set_client
character_set_results
character_set_connection
是与命令行的编码同步的,命令行的编码为GBK

8)如果在程序中出现乱码问题,可以这样处理
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
与程序保证一致的utf8编码

转载于:https://www.cnblogs.com/lianliang/p/5168442.html

Mysql中经常出现的乱码问题相关推荐

  1. java mysql 中文乱码_java读取MySQL中的中文数据显示乱码

    在linux平台(Ubuntu 10.10)上安装MySQL(5.1)和JDK(1.6),然后使用PuTTY远程操作.只将PuTTY的Window -> Translation 中的" ...

  2. servlet中中文正常显示,mysql数据库手动插入中文正常显示,servlet向mysql中插入中文显示乱码...

    作者:http://5563447.blog.51cto.com/5553447/1422627 问题是:就是POST请求提交表单数据给servlet,通过JDBC插入Mysql,出现中文乱码. 解决 ...

  3. 关于mysql数据库插入数据,不能插入中文和出现中文乱码问题

    首先,推荐一篇博客:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当时,我安装完mysql数据库后,新建一个数据库后插入数据 ...

  4. mysql中的编码问题_mysql存储乱码之编码问题

    在编写项目中,出现乱码问题有比较多的地方,当前笔记为在项目中没有乱码,在存储mysql 中出现乱码. 1.通过下面语句查看数据库.表的客户端.服务端编码是否一致,是否能存储中文. show varia ...

  5. mysql中值换行显示为乱码_MySQL数据移植中的乱码问题

    mysql移植含有中文的数据时,很容易出现乱码问题.很多是在从mysql4.x向mysql5.x移植的时候出现.mysql的缺省字符集是latin1,在使用mysql4.x的时候,很多人都是用的lat ...

  6. mysql中gbk编码汉字和英文_MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题...

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数 ...

  7. mysql 中日韩 乱码_mysql字符集及乱码问题

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:当 ...

  8. mysql 中日韩 乱码,mysql字符集乱码问题解决方法介绍

    character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. characte ...

  9. mysql表中的中文是乱码_mysql插入表中的中文显示为乱码或问号的解决方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 今天在做ssh的博客项目时发现mysql数据库中的中文显示为问号,网上查阅了很多资料,都不是很全,所以我总结一下,供大家参考和自己复习. 1.我的 ...

最新文章

  1. 配置告警系统主脚本main.sh mon.sh load.sh 502.sh disk.sh
  2. ERP实施过程中的误区 你知道吗?
  3. redis常用API
  4. BZOJ 1412 [ZJOI2009]狼和羊的故事(最小割)
  5. matlab如何求矩阵的转置矩阵,怎么用MATLAB程序求转置矩阵?急需,高手帮忙………………...
  6. Oracle的Net Configuration Assistant 配置
  7. win7系统临时文件夹的打开方法
  8. python的argparse模块parse_known_args()方法的使用
  9. Selenium UI自动化测试(四)Python+Unittest+HTMLTestRunner测试报告—百度hao123实例
  10. 计算机应用 格式,《计算机应用》投稿格式.pdf
  11. Linux之last命令
  12. AAAI'22 | 预训练中的多模态信息融合与表征探究
  13. 微信小程序跳转美团饿了么指定商家
  14. 时统ptp_IEEE1588 PTP对时系统原理及特点
  15. Failed to execute goal on project basic-core-data: Could not resolve dependencies for project ct com
  16. 菲尼克斯2961105继电器REL-MR- 24DC/21
  17. 全网最详细中英文ChatGPT-GPT-4示例文档-从0到1快速入门AI智能问答应用场景——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)
  18. 第六章 Python数据可视化
  19. 微服务 ZooKeeper ,Dubbo ,Kafka 介绍应用
  20. easyUI右侧搜索面板下拉列表框样例

热门文章

  1. Android的自定义键盘颜色,android自定义键盘(解决弹出提示的字体颜色问题)
  2. mysql累加某字段到达临界值,获取另一个字段的值
  3. php生成静态页面并预览
  4. linux下修改ssh默认的连接端口及禁止root远程连接等
  5. 【系统分析与设计】业务流程图绘制方法
  6. 【深度学习入门到精通系列】留一交叉验证法Python实现(看不懂你来打我~!)
  7. 长沙网络推广浅析影响网站收录的因素有哪些?该如何做的更好?
  8. 修改aconda镜像服务器,Jupyter安装链接aconda的实现方法
  9. linux利用vi挂载磁盘,如何在linux环境上挂载磁盘
  10. c语言怎么让他变成程序,用C语言编了个程序,怎样让它点击“下一步”后继续弹出窗口...