关于SpringMVC返回中文乱码
来源:互联网 发布:java 生成zip加密 编辑:程序博客网 时间:2024/06/02 06:06
问题复现
@RequestMapping(value = "/preview", method = RequestMethod.GET) public String getPreview(@RequestParam(value = "id") Integer id) { String result; String url = Global.getConfig("xxx"); url+="?id="+id; result = WebUtils.doHttpGet(url); return result; }
这是一个普通的rest接口,根据参数id获取查询信息,并且调用外部系统,返回结果出现中文乱码????。
问题原因
只有当返回值是String时才会出现中文乱码,而当返回值是Map<String, Object>
或者是其它类型时,并没有中文乱码的出现。
这可以说是spring mvc的一个bug,spring MVC有一系列HttpMessageConverter去处理返回值,如返回list或其它则使用MappingJacksonHttpMessageConverter,返回string,则使用StringHttpMessageConverter,而这个convert使用的是字符集是iso-8859-1,而且是final的。
问题解决
@RequestMapping(value = "***",produces={"text/html;charset=UTF-8;","application/json;"})
这样普通浏览器的请求就能正常显示中文,而客户端的模拟请求(可以是ajax或http)则手动指定Accept的charset,即可正常接收中文。
0 0
- 关于SpringMVC返回中文乱码
- springmvc返回数据中文乱码
- springmvc @ResponseBody 返回中文乱码
- SpringMVC返回中文字符串乱码
- SpringMvc返回@ResponseBody中文乱码
- SpringMvc返回@ResponseBody中文乱码
- SpringMVC 返回String中文乱码
- 关于springmvc 返回json乱码
- 关于:SpringMVC中文乱码问题
- 解决SpringMVC的@ResponseBody返回中文乱码
- SpringMVC返回json数据+解决中文乱码
- SpringMVC中@ResponseBody返回中文乱码问题
- 解决SpringMVC的@ResponseBody返回中文乱码
- 解决SpringMVC的@ResponseBody返回中文乱码
- springmvc responseBody返回中文乱码解决方案
- SpringMVC中@ResponseBody返回中文乱码解决方法
- SpringMvc返回@ResponseBody中文乱码(转)
- springMVC 返回中文字符串时乱码
- Spring Cloud Hystrix: 控制stream推送频率
- pycharm 最新破解方法 2017.1.1 (激活码失效不能用)
- 水晶报表做好的窗体程序在本机运行正常,在办公电脑上这报错
- LeetCode : Nth Digit
- 【Maven】centos搭建maven私服
- 关于SpringMVC返回中文乱码
- Linux编程手册读书笔记第三章(20140407)
- 剑指offer-面试题41-和为s的两个数字VS和为s的连续正数序列
- Cocos2d-x中编辑框CCEditBox的使用
- Cento系统下docker的安装与卸载
- AES算法重点详解和实现
- 在MAC 中使用 Intellij IDEA 提示 this license XXXXXX has been cancelled 错误的解决。
- mybatis中#和$符号的区别
- linux 7安装rac 11gR2时运行root.sh报错找不到ohas服务(ohasd failed to start)