在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解,如果有兴趣的同学可以自己百度。

下面我们就直接使用如下操作解决:

一、打开mysql控制台,输入命令show variables like 'character%';

  显示如下:

  +--------------------------+-------------------------------------------+
| Variable_name      | Value                   |
+--------------------------+-------------------------------------------+
| character_set_client   | latin1                  |
| character_set_connection | latin1                  |
| character_set_database  | utf8                   |
| character_set_results  | latin1                  |
| character_set_server   | utf8                   |
| character_set_system   | utf8                   |
| character_sets_dir    | C:\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+-------------------------------------------+

二、修改my.ini文件

  [client]

  default-character-set=utf8

  [mysqld]
  default-storage-engine=INNODB
  character-set-server=utf8
  collation-server=utf8_general_ci

三、重启后使用第一步的命令查看,如下:

  +--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

还有character_set_database和character_set_server的默认字符集还是latin1。

四、输入命令:set names utf8;

  重启后,使用第一步命令查看:

+--------------------------+------------------------------------------------+
| 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 | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\wamp64\bin\mysql\mysql5.7.9\share\charsets\ |
+--------------------------+------------------------------------------------+

除了character_set_filesystem是binary外,其他都是utf8了,

这样在web端也设置成utf8编码就可以正常输入数据库了。

mysql5.7中解决中文乱码的问题的更多相关文章

  1. Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  2. hive中解决中文乱码

    一.个人初始开发环境的基本情况以及Hive元数据库说明 ①hive的元数据库改成了mysql(安装完mysql之后也没有进行其它别的设置) ②hive-site.xml中设置元数据库对应的配置为  j ...

  3. JSP中解决中文乱码

    <%@ page language="java" contentType="text/html;charset=gbk" pageEncoding=&qu ...

  4. oracle中解决中文乱码问题

    中文乱码问题解决 1.查看服务器端编码 select userenv('language') from dual; 查到结果是: USERENV('LANGUAGE') --------------- ...

  5. Jmeter中解决中文乱码问题

    在使用JMeter过程中,执行结果响应断言总是提示失败,但是使用英文字母可以成功,表示逻辑和其它地方没有问题,问题可能出在编码上,细看了响应数据和日志,其中中文参数被编码成了类似URL编码格式,如下图 ...

  6. java 中解决中文乱码问题的方法(三法)

    1. 重新定义. String str = "中文试试" ; str = new String(u.getBytes("iso-8859-1"),"u ...

  7. Python中解决中文乱码问题

    乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了. ...

  8. xshell 中解决中文乱码问题

    点击菜单栏 文件 -> 属性 在属性对话框内点击终端, 选择 编码为 UTF-8 即可.

  9. 分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题

    之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbi ...

随机推荐

  1. protobuf 原理

    Protobuf 的优点 Protobuf 有如 XML,不过它更小.更快.也更简单.你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构.你甚至可以在无需重新部署程序的情况下更新 ...

  2. 自动化测试框架Selenium工作原理

    本文所讲的Selenium是指Selenium Webdriver Selenium WebDriver与RC的功能相同,并且包含原始的1.x绑定.它涉及语言绑定和单个浏览器控制代码的实现.这通常被称 ...

  3. 2017-07-04(sudo wc sort)

    sudo 作用 root把本来只能超级用户执行的命令,赋予普通用户执行. 添加 运行visudo命令,在文件底部添加信息即可! sudo -l  查看用户可以运行的命令 use1  ALL=(ALL) ...

  4. 解决页面引用百度地图API设置点的logo不显示问题

    在写css时需要引用一个百度的api地图,却发现设置点的logo图片不能显示,后查阅百度测试发现是图片路径的问题: 在引用的下载的html页面找到 var icon = new BMap.Icon 将 ...

  5. myeclipse环境搭建

    公司来了几个新人,老是在教他们环境搭建这些,每次在帮他们调试代码的时候老是不厌其烦的看着他们坐等myeclipse编译了,校验了什么的,而且在编码的时候也不使用快捷键,然后我就只能默默的坐回去了.为了 ...

  6. Execption:the database returned no natively generated identity value

    org.hibernate.HibernateException: The database returned no natively generated identity value at org. ...

  7. MySQL中判断日期间隔的方法

    MySQL中查询一定时间间隔内的数据的方法比较常用,可以使用TO_DAYS.DATE_SUB等函数来实现. TO_DAYS函数的作用是返回指定日期从0年开始计算的天数. DATE_SUB函数的作用是通 ...

  8. 重定向stdin stdout stderr |

    在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据 流,也就是题目中所提到的这三个.那么什么是数据流呢(stream)? 我们知道,一个程序要运行,需要有输入.输出,如果出错, ...

  9. 时间转换与星期推算(Matlab版)

    1 概述 最近在学习GPS解算算法时需要在GPS时(GPS周和周内秒)和公历日期之间进行转换,于是就整理了一些时间转换的小程序. 本文介绍了GPS时.公历.儒略日(JD).简化儒略日(MJD)之间的转 ...

  10. TCP之再谈解决服务器TIMEWAIT过多的问题

    原则 TIMEWAIT并不是多余的.在TCP协议被创造,经历了大量的实际场景实践之后,TIMEWAIT出现了,因为TCP主动关闭连接的一方需要TIMEWAIT状态,它是我们的朋友.这是<UNIX ...