SpringMVC返回的ResponseEntity出现乱码及解决
目录
- 返回ResponseEntity乱码
- 问题
- 原因
- 解决
- ResponseEntity下载文件名中文乱码
- 解决办法
- 问题解决
返回ResponseEntity乱码
问题
前台通过数据到后台查询相关数据,结果是后台返回的数据出现中文出现乱码,如下图所示
原因
对于String类型,在没有在代码中明确指定编码类型的情况下,可能后台对传输的数据没有正确编码(本人的猜测,时间有限,后面有时间会跟下源码和看看文档,发现真正的原因)
解决
将String类型改为用户自定义的Pojo,如User等,或者改为List这些比较高级一点的数据类型。然后通过@ResponseBody进行序列化,中文乱码问题解决,如下图所示。
ResponseEntity下载文件名中文乱码
SpringBoot下载文件,文件名带了中文出现乱码
代码如下:
return ResponseEntity.ok() .header("Content-disposition", "attachment;filename=" + fileName) .contentLength(file.length()) .contentType(MediaType.parseMediaType("application/octet-stream")) .body(resource);
解决办法
给文件名进行编码:
fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");
问题解决
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
详解Spring MVC3返回JSON数据中文乱码问题解决
查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题. Spring版本:3.2.2.RELEASE Jackson JSON版本:2.1.3 解决思路:Controller的方法中直接通过response向网络流写入String类型的json数据. 使用 Jackson 的 ObjectMapper 将Java对象转换为String类型的JSON数据. 为了避免中文乱码,需要设置字符编码格式,例如:UTF-8.GBK 等. 代码如下: import org.s
-
Spring MVC Controller返回值及异常的统一处理方法
旧的设计方案 开发api的时候,需要先定义好接口的数据响应结果.如下是一个很简单直接的Controller实现方法及响应结果定义. @RestController @RequestMapping("/users") public class UserController { @Inject private UserService userService; @GetRequest("/{userId:\\d+}") public ResponseBean signin
-
SpringMVC中解决@ResponseBody注解返回中文乱码问题
昨天在做项目的时候用@ResponseBody注解,发现返回页面上的中文是乱码,解决过程也是让我很郁闷!!!特此记录一些.目前有下面几种解决方案: @RequestMapping的produces方法 第一种解决方案是使用@RequestMapping注解的produces方法.写法如下: 复制代码 代码如下: @RequestMapping(value = "testPersonalValidtor.do",produces = "application/json;char
-
SpringMVC返回的ResponseEntity出现乱码及解决
目录 返回ResponseEntity乱码 问题 原因 解决 ResponseEntity下载文件名中文乱码 解决办法 问题解决 返回ResponseEntity乱码 问题 前台通过数据到后台查询相关数据,结果是后台返回的数据出现中文出现乱码,如下图所示 原因 对于String类型,在没有在代码中明确指定编码类型的情况下,可能后台对传输的数据没有正确编码(本人的猜测,时间有限,后面有时间会跟下源码和看看文档,发现真正的原因) 解决 将String类型改为用户自定义的Pojo,如User等,或者改
-
springmvc 发送ajax出现中文乱码的解决方法汇总
使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据,从数据库拿出来是正确的中文格式,展示在页面上就是错误的??,研究了一下,有几种解决办法. 我使用的是sping-web-3.2.2,jar 方法一: 在@RequestMapping里面加入produces = "text/html;charset=UTF-8" @RequestMapping(value = "/configrole", method = RequestMethod
-
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
-
Springmvc返回html页面问题如何解决
前言 最近跟着视频在做一个分布式项目练练手,然后那个老师就说了下freemakker生成静态页面后,然后讲了下思路:添加商品时生成对应的商品静态页面,访问通过nginx来访问静态页面,但是之后就啥也没做了 nginx我就懒得下载以及搭建了,直接用tomcat来代替,我的思路是这样:访问商品详情页面时,先判断有没有对应的静态页面,有就返回html,没有就走数据库然后返回jsp. 刚开始还傻傻认为springmvc既然jsp也能解析,html也没啥毛病,直接返回html,呵呵,果然不行. 下面是我自
-
解决flask接口返回的内容中文乱码的问题
写一个简单的例子程序: # coding:utf-8 import flask from flask import json, jsonify, request, render_template app = flask.Flask(__name__) @app.route("/api", methods=["GET", "POST"]) def api(): if request.method == 'GET': return jsonify({
-
springboot返回前端中文乱码的解决
尝试了各种防止中文乱码的方式,但是还是乱码;最后还是细节问题导致; 解决方式: 以及俩种方式是百度的,我的问题不是这俩块 1.在requestMapping 中添加 produces @RequestMapping( value = "/login", produces = "application/json;charset=utf-8", method = RequestMethod.POST ) 2.在application.yml 中添加配置 spring:
-
JQuery异步获取返回值中文乱码的解决方法
用jqgrid异步获取列表值,遇到个问题,服务器端从数据库取到的数据没有出现中文乱码问题(日志打出来是没有乱码的),但是异步传到客户的时候却出现了乱码. 服务器端已经编码过了(UTF-8编码).开始一直怀疑是客户端的问题,比如客户端和服务器端编码不一致啊,也怀疑是不是jqGrid工具函数中少配了 contentType: "application/x-www-form-urlencoded; charset=utf-8", 等等问题. 结果都不是,纠结了几个小时,后来经过大牛的提醒
-
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);//为了解决中文
-
探讨PHP JSON中文乱码的解决方法详解
我们知道在使用Ajax技术与PHP后台交互时,中文乱码是常有的事,JSON作为与XML类似的数据交换格式,在PHP用来进行交互时也会出现中 文乱码的情况,解决PHP JSON中文乱码的方法思路其实与PHP Ajax传值中文字符乱码的解决方法类似,下面我以教程形式详细介绍下解决PHP JSON中文乱码的方法. 为什么PHP与JSON交互时会出现中文乱码? 由于JSON与JS一样,对于客户端的字符是以UTF8的形式处理,即JSON提交或接受返回的字符是以UTF8形式处理,当与PHP交互时,如果数据库
-
微信开发--自定义菜单查询返码乱码的解决方法
获取自定义菜单查询返回的结果有乱码 解决方法: string Posturl = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=Token"; //设置提交的相关参数 HttpWebRequest request = WebRequest.Create(Posturl) as HttpWebRequest; //提交方式 request.Method = "Get"; //编码格式 request.
随机推荐
- 局域网用户的限制和反限制设置方法与思路分析
- iOS 9.0后微信支付回调处理实例
- ASP.NET对HTML页面元素进行权限控制(三)
- 利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
- php教程 插件机制在PHP中实现方案
- 在Python的Django框架下使用django-tagging的教程
- Python判断某个用户对某个文件的权限
- Android AsyncTask完全解析 带你从源码的角度彻底理解
- 远程连接mysql数据库注意点记录
- Android程序开发之给背景图加上移动的手势
- 页面利用渐进式JPEG来提升用户体验度
- js如何获取兄弟、父类等节点
- 动态生成的IFRAME,设置SRC时的问题解决分析
- 用JQuery 实现AJAX加载XML并解析的脚本
- SqlServer与MongoDB结合使用NHibernate
- Asp.net在IIS上运行不了的解决方法
- javascript Firefox与IE 替换节点的方法
- Java基于Socket实现网络编程实例详解
- Android中获取sha1证书指纹数据的方法
- SpringBoot初始教程之统一异常处理详解