首页 技术 正文
技术 2022年11月13日
0 收藏 313 点赞 3,912 浏览 1215 个字

在使用springMVC框架构建web应用,客户端常会请求字符串、整型、json等格式的数据,通常使用@ResponseBody注解使 controller回应相应的数据而不是去渲染某个页面。如果请求的是非英文格式的字符串,往往在客户端显示的是乱码。原因是spring的 StringHttpMessageConverter默认的字符类型是iso8895-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<String> 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<String>(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);    }
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,493
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295