前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot全局异常处理中文乱码

springboot全局异常处理中文乱码

作者头像
程序新视界
发布2020-02-13 10:33:44
2.1K0
发布2020-02-13 10:33:44
举报
文章被收录于专栏:丑胖侠丑胖侠

在使用springboot过程中,当使用全局异常处理,即通过@RestControllerAdvice注解来定义全局异常处理。在具体的处理方法中如果返回中文可能会出现中文乱码情况。

比如,下面代码是针对参数校验的异常处理:

@ExceptionHandler(ConstraintViolationException.class)
	public BizResult notValidException(ConstraintViolationException ex) {
		BizResult result = new BizResult();
		result.setCode("500");

		Set<ConstraintViolation<?>> constraintViolations = ex.getConstraintViolations();
		if (!CollectionUtils.isEmpty(constraintViolations)) {
			StringBuilder sb = new StringBuilder();
			for (ConstraintViolation constraintViolation : constraintViolations) {
				sb.append(constraintViolation.getMessage()).append(",");
			}
			String errorMessage = sb.toString();
			if (errorMessage.length() > 1) {
				errorMessage = errorMessage.substring(0, errorMessage.length() - 1);
			}
			result.setErrorMsg(errorMessage);
			return result;
		}

		result.setErrorMsg(ex.getMessage());

		return result;
	}

此时,如果校验参数的注解中信息描述使用了中文,则返回结果为乱码。解决此问题的方法很简单。在application配置文件中配置如下设置:

spring.http.encoding.force=true

也就是说对请求参数和返回参数强制编码,默认使用UTF-8。

原文链接:《springboot全局异常处理中文乱码

SpringBoot技术视频

CSDN学院:《Spring Boot 视频教程全家桶》

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringBoot技术视频
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档