springboot与数据库返回数据中文乱码
问题描述:使用springboot操作数据库时,返回的中文数据一直是乱码
刚开始以为是springboot的问题,一直在网上搜索springboot返回数据是乱码
结果我的问题压根对不上边,怎么都解决不好
后面发现应该是mysql数据库的问题,于是上网搜索,最后判断是字符集的问题
解决流程:
先使用sql语句查看数据库的字符集
show variables like 'character%';
发现多处地方都不是utf8,想要修改的话要对mysql配置文件修改,网上很多修改都是使用命令修改,但是这种方法只是局部的,mysql服务重启之后,这些修改都无效了,所以要对配置文件进行修改。
因为我的操作系统是windows,所以我的mysql配置文件是my.ini,具体路径是在 C:\ProgramData\MySQL\MySQL Server 8.0下
可能有的电脑的ProgramData文件夹被隐藏了,只需将查看里面的隐藏的项目勾选上就行
这边推荐先用管理员运行一个记事本,然后在里面打开my.ini文件
分别找到[client][mysql][mysqld]下面添加上如下代码块,注意前面不要加#
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci' init_connect = 'SET collation_connection = utf8mb4_unicode_ci'
修改成功后使用管理员运行cmd,运行如下两条命令,重启mysql服务,(mysql80是服务名,也可能是叫做mysql)
net stop mysql80
net start mysql80
重启之后再次使用mysql命令查询字符集,发现多个字符集已经变成了utf8mb4
这时候就表示修改成功,然后此时因为修改字符集不对已存在的数据库有效,所以你得将你所操作的数据库删掉,重新建,最后终于成功了!
到此这篇关于springboot与数据库返回数据中文乱码的文章就介绍到这了,更多相关springboot数据库中文乱码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Java连接数据库oracle中文乱码解决方案
今天写了一个java项目连接数据库,之后写了一个执行入库操作的模块.此时暴露出一个问题就是项目的中文插入到数据库时会是乱码: 项目输出的中文: 执行插入操作后数据库中内容: 此时CustomerNumber字段是乱码. 出现这种情况一般都是数据库编码与项目编码不一致导致的,首先查看项目与数据库的编码格式: 查看项目编码: 项目的编码是gbk格式 查看数据库编码格式: 数据库编码格式是ISO-8859-1 以上查看编码格式操作可以百度 出现这种情况一般可以通过两种方式解决.一是修改数据库或者项目的
-
Mac Mysql数据库中文乱码问题解决
Mac 下MySQL数据库中文乱码解决方案: 当我们用框架进行数据库的存储操作时,经常会遇到中文乱码的问题. 如:在使用Java中得SSH框架时,我们需要在web.xml文件中配置编码的filter,具体代码是: <span style="font-family:FangSong_GB2312;font-size:14px;"><!-- 表单处理乱码,必须在OpenSessionInViewFilter的filter之前 --> <filter> &
-
详解mysql数据库中文乱码问题
当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句 show variables like 'character%'; 来查看当前数据库的相关编码集. 从上图中可以看到 MySQL 有六处使用了字符集,分别为:client .connection.database.results
-
springboot与数据库返回数据中文乱码
问题描述:使用springboot操作数据库时,返回的中文数据一直是乱码 刚开始以为是springboot的问题,一直在网上搜索springboot返回数据是乱码结果我的问题压根对不上边,怎么都解决不好 后面发现应该是mysql数据库的问题,于是上网搜索,最后判断是字符集的问题 解决流程:先使用sql语句查看数据库的字符集 show variables like 'character%'; 发现多处地方都不是utf8,想要修改的话要对mysql配置文件修改,网上很多修改都是使用命令修改,但是这种
-
springboot返回前端中文乱码的解决
尝试了各种防止中文乱码的方式,但是还是乱码;最后还是细节问题导致; 解决方式: 以及俩种方式是百度的,我的问题不是这俩块 1.在requestMapping 中添加 produces @RequestMapping( value = "/login", produces = "application/json;charset=utf-8", method = RequestMethod.POST ) 2.在application.yml 中添加配置 spring:
-
PHP读取mssql json数据中文乱码的解决办法
PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. 解决办法如下: 这样,sql server 2008中的中文就可以在网页正常显示了. 如果要将中文正常插入到sql server 2008中,还要加入一条代码:$query = iconv("utf-8", "gbk//ignore", $query);//为了解决中文
-
解决Ajax加载JSon数据中文乱码问题
一.问题描述 使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: Java代码 async: { enable: true, url: basePath + '/sysMenu/listSysMenu', autoParam: ["id=parentId"] } SpringMvc中文字符处理: Java代码 <mvc:annotation-driven> <mvc
-
java中form以post、get方式提交数据中文乱码问题总结
一:form在前台以post方式提交数据: 浏览器将数据(假设为"中国")发送给服务器的时候,将数据变成0101的二进制数据(假设为98 99)时必然要查码表,浏览器以哪个码表打开网页,浏览器就以哪个码表提交数据.数据到达服务器后,数据(98 99)要封装到request中,在servlet中调用Request的getParameter方法返回的是字符串("中国"),方法内部拿到数字后要转成字符,一定要查码表,由于request的设计者是外国人,所以默认查的是他
-
springboot统一接口返回数据的实现
一,没有异常的情况,正常返回数据 希望接口统一返回的数据格式如下: { "status": 0, "msg": "成功", "data": null } 和接口数据对应的bean /** * 统一返回结果的实体 * @param <T> */ public class Result<T> implements Serializable { private static final long serial
-
Springboot+AOP实现返回数据提示语国际化的示例代码
前言 本篇内容: 提示语的国际化返回,自定义多语言. 本文使用aop方式,拦截接口返回的数据,进行转换. 正文 先看这次示例教学的项目 目录结构: (当然resource里面的i18n文件夹和三个properties文件也是要我们自己建的,但是 那个Resource Bundle 不用管,这个在yml加上对应配置项自动生成的. 不清楚的继续往下看教学就好) 开始敲(CV)代码: pom.xml 依赖: <dependencies> <dependency> <groupId&
-
spring+mybatis 通过@ResponseBody返回结果中文乱码的解决方法
问题发生: 通过@Responsebody返回 @ResponseBody @RequestMapping(value ="/selectByFormId",method = RequestMethod.GET) public Map<String,Object> getClassName(String formId){ List<String> list =formInfoService.selectClassName(formId); Map<Stri
-
解决pycharm下os.system执行命令返回有中文乱码的问题
如下所示: source = ['C:\\Users\\admin\\Desktop\\pythonLearning'] target_dir = 'C:\\Users\\admin\\Desktop' print(time.strftime('%Y%m%d%H%M%S')) target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip' if not os.path.exists(target_dir): os.mkd
-
SpringBoot 定制化返回数据的实现示例
此时我们的返回结构如下: { "code": 200, "msg": "ok", "data": { "id": 1, "username": "steve", "secretKey": "xxx", "expiredAt": null, "createdAt": "2020-0
随机推荐
- JSP数据库操数据分页显示
- Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
- Android实现手势滑动识别功能
- 在Java的Struts中判断是否调用AJAX及用拦截器对其优化
- JS操作COOKIE实现备忘记录的方法
- mysql 5.7.18 winx64 免安装 配置方法
- 初学Python实用技巧两则
- CSS之自动换行
- 探讨PHP JSON中文乱码的解决方法详解
- java中javaBean与Bean的深入理解
- Android 手机浏览器调试使用Chrome进行调试实例详解
- javascript实现鼠标移到Image上方时显示文字效果的方法
- javascript实现table表格隔行变色的方法
- QQ卡机问题解决方法(信息记录过大时)
- Java基础教程之实现接口
- Android自定义环形LoadingView效果
- 解析C#中[],List,Array,ArrayList的区别及应用
- 自动完成JS类(纯JS, Ajax模式)
- python实现在函数图像上添加文字和标注的方法
- InnoDB 类型MySql恢复表结构与数据