美文网首页
中文存入数据库乱码

中文存入数据库乱码

作者: 星期六1111 | 来源:发表于2017-09-27 22:21 被阅读170次

问题描述

在前端输入一段中文存入mysql中,发现mysql中的显示是??

矛盾点

在前端发请求的时候设置了字符编码为utf-8(utf8:用以解决国际上不同语言而出现的编码),但为什么数据库中却接受不到中文。。。

问题解决

Q1:首先判断下问题可能在哪?
我们在向mysql 写入中文数据时,在客户端(前端,后端的java程序)、数据库连接、写入数据库时分别要进行编码转换;写入数据库后,在返回结果、数据库连接、客户端((前端,后端的java程序))分别进行编码转换。从问题的描述中我们知道问题在写入数据库的过程中。。。

Q2: 虽然在发请求的时候设置了字符编码为utf-8,但还是不放心,怀疑问题可能会出在前端。
A2: 用postman进行了测试,发送post请求,传入的数据为中文,去数据库查看,发现还是???,虽然这不能说明前端是没有问题的,但证明了后端一定有问题。

Q3: 是SpringBoot 的问题吗?
A3: 在网上尝试了很多办法,试图将SpringBoot 的字符编码设置为utf-8,后来发现SpringBoot 的默认编码方式就是utf-8.....

Q4:那么问题在哪里?
A4: 现在需要排查数据库了。使用show variables like 'character_set_%'来查看数据库的编码格式。
设置下数据库连接时的字符编码,怎么设置?不知道.....google 搜索,在jdbc 连接mysql的时候设置,在springBoot 中application.properties中添加如下代码:

spring.datasource.url=jdbc:mysql://localhost:13308/GrowthNoteList?useUnicode=true&characterEncoding=utf-8

设置后用上述命令查询如下:


数据库编码

上述结果显示的是mysql 数据库系统中客户端、数据库连接、数据库、文件系统、查询结果、服务器、系统的字符集设置及mysql的字符设置目录。

在这里,文件系统字符集是固定的,系统、服务器的字符集在安装时确定,与乱码问题无关,乱码的问题与客户端、数据库连接、数据库、查询结果的字符集设置有关。(注:客户端是看访问mysql 数据库的方式,通过命令行访问,命令行窗口就是客户端,通过JDBC 等连接访问,程序就是客户端。

再次用postman测试,发现可以存入中文了,问题解决。

结论:jdbc连接数据库的时候字符编码需要设置成utf-8

反思

开始的时候没有想到数据库,主管怀疑是springBoot,就从网上找设置SpringBoot字符编码的方式,然后各种尝试,浪费了很多时间。。。

action

当陷入问题,一时解决不了时用tasking图帮助理清思路,找出可能出现问题的点,不能陷入问题,在google上盲目的搜索,会浪费很多时间的。

相关文章

  • 中文存入数据库乱码

    问题描述 在前端输入一段中文存入mysql中,发现mysql中的显示是?? 矛盾点 在前端发请求的时候设置了字符编...

  • web项目经常遇到的乱码问题

    开发web项目经常会遇到请求接口乱码、提交表单乱码,存入数据库乱码,网页显示乱码等情况。 乱码的原因很简单,都是因...

  • Mac IDEA MySQL数据库插入中文乱码

    Mac IDEA MySQL 插入中文乱码 数据库插入中文乱码问题,很大原因是由于数据库,SQL语句,以及编译器使...

  • 关于mysql中文编码的问题解决方案

    问题一、数据库中文乱码 现象: 插入中文数据到mysql后,发现乱码解决方案: 设置数据库编码统一为utf8(因为...

  • mysql,idea 调试出现中文乱码

    调试的时候出现了中文乱码 形如 “口口”, 然后先看数据库,mysql这边的确出现了中文乱码 设置字符集

  • Mac Mysql数据库中文乱码问题解决

    Mac 下MySQL数据库中文乱码解决方案:当我们用框架进行数据库的存储操作时,经常会遇到中文乱码的问题。如:在使...

  • Docker 容器中文乱码解决方案

    遇到docker的中文乱码问题有两处 vi 打开文件发现中文乱码,这时只需要修改.vimrc文件 导入数据库发现中...

  • Postgre 查找数据乱码

    数据库 中文乱码 postgre 最近使用hive往postgre传输数据后,发现postgre中包含乱码,所以想...

  • 数据库乱码问题

    当在数据库中插入中文时,出现了乱码: 为什么呢? 因为我们数据库中编码和中文不匹配造成的。 乱码问题解决: 第一步...

  • javaWEB开发随笔

    出现中文乱码时,可依次检查:doget,dopost转码问题,数据库链接,数据库编码,IDE设置

网友评论

      本文标题:中文存入数据库乱码

      本文链接:https://www.haomeiwen.com/subject/kilpextx.html