博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
13.1 Spring MVC 关于controller的字符编码
阅读量:6808 次
发布时间:2019-06-26

本文共 1608 字,大约阅读时间需要 5 分钟。

13.1 Spring MVC 关于controller的字符编码

问题描述

在使用springMVC框架构建web应用,返回http请求json格式的数据,中文乱码。

原因分析

我们通常使用@ResponseBody注解使 controller回应相应的数据而不是去渲染某个页面。如果请求的是非英文格式的字符串,往往在客户端显示的是乱码。

原因是spring的 StringHttpMessageConverter默认的字符类型是iso8895-1 ‘西欧语言’,在org.springframework.http.converter.StringHttpMessageConverter类中

public class StringHttpMessageConverter extends AbstractHttpMessageConverter
{ public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1"); ....}

所以,我们使用中文等字符需要单独指定。

这里总结几种解决方案:

1.不使用@ResponseBody注解,使用HttpServeletResponse设置contentType属性

@RequestMapping(value ="/rest/create/document") public void create(Document document, HttpServletRespone respone) { repoonse.setContentType("text/plain;charset='utf-8'"); response.write("中文string"); }

2.返回Response Entity object,设置contentType,例:

@RequestMapping(value = "/rest/create/document") public ResponseEntity
create(Document document, HttpServletRespone respone) { HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.add("Content-Type", "text/html; charset=utf-8"); Document newDocument = DocumentService.create(Document); String json = jsonSerializer.serialize(newDocument); return new ResponseEntity
(json, responseHeaders, HttpStatus.OK); }

3.使用produces属性:

@RequestMapping(value = "/rest/create/document",produces= "text/plain;charset=UTF-8") //返回的内容类型@ResponseBody public String create(Document document, HttpServletRespone respone) throws UnsupportedEncodingException { Document newDocument = DocumentService.create(Document); return jsonSerializer.serialize(newDocument); }

转载地址:http://fyhwl.baihongyu.com/

你可能感兴趣的文章
微软职位内部推荐-Software Engineer II-News
查看>>
微软职位内部推荐-SDEII for Windows Phone Apps
查看>>
怎么让几何画板中点和点的坐标移动
查看>>
laravel常用拓展库
查看>>
sourcetree向github推送代码提示密码错误
查看>>
Webpack webpack+gulp实现自动构建部署
查看>>
WordPress 插件机制的简单用法和原理(Hook 钩子)
查看>>
CSS文本超出2行就隐藏并且显示省略号
查看>>
什么是多线程,锁,死锁,怎么避免死锁(转)
查看>>
左外联接测试
查看>>
11-linux基础八-正则表达式
查看>>
Nacos环境搭建
查看>>
全栈工程师就是一棵歪脖子树
查看>>
转:Java中abstract和interface的区别
查看>>
app.jsNodejs启动测试服务
查看>>
管理员取得所有权限.reg
查看>>
杭电1087
查看>>
Js跑马灯效果 && 在Vue中使用
查看>>
2017-2018-2 20179209《网络攻防》第二周作业
查看>>
ORA-12519: TNS:no appropriate service handler found 解决
查看>>