spring-mvc @responseBody注解返回中文乱码解决
2015-08-26 11:22
204 查看
在项目中能设置UTF-8基本都设置了,通过ajax请求后台的springmvc后返回中文字符串,页面显示???,解决办法是:
在方法中添加:produces = “text/html;charset=UTF-8”。
具体添加位置如下:
在ajax添加
contentType:’application/x-www-form-urlencoded; charset=UTF-8’不起任何作用。
如果使用了@ResponseBody注解,springMVC会自动把对象转化为json字符串,而不用将对象转成json字符串然后再返回。比如可以用如下的写法:
返回的json字符串格式为:
以下为个人在网上查找的资料得出来的猜测:
如果将对象转化为字符串再返回和直接返回的对象,对springMVC而言是不同的代码处理,一个默认编码为ISO-8859-1,另一个为UTF-8.所有导致乱码。
在方法中添加:produces = “text/html;charset=UTF-8”。
具体添加位置如下:
@RequestMapping(value="/getpersonLimitItemNameByDeptIdAndSglcheckid", produces = "text/html;charset=UTF-8") @ResponseBody public String getpersonLimitItemNameByDeptIdAndSglcheckid( HttpServletRequest request) {
在ajax添加
contentType:’application/x-www-form-urlencoded; charset=UTF-8’不起任何作用。
如果使用了@ResponseBody注解,springMVC会自动把对象转化为json字符串,而不用将对象转成json字符串然后再返回。比如可以用如下的写法:
@RequestMapping("/testObj") @ResponseBody public WebResult responseJsonObj(HttpServletRequest request) { WebResult wr = new WebResult(); wr.setFlag(0); wr.setMsg("测试"); return wr; }
返回的json字符串格式为:
{"flag":0,"data":[],"o":null,"msg":"测试"}
以下为个人在网上查找的资料得出来的猜测:
如果将对象转化为字符串再返回和直接返回的对象,对springMVC而言是不同的代码处理,一个默认编码为ISO-8859-1,另一个为UTF-8.所有导致乱码。
相关文章推荐
- Java中使用RSA对请求和接收数据进行签名校验
- java内部类与匿名内部类作用是什么?
- java.io.IOException: open failed: EACCES (Permission denied)问题解决
- java 面向對象的資料統計
- eclipse 导入 jar 源码
- Java性能优化哪些事
- java的concurrent用法详解
- Java多线程 总结
- Java中使用 Md5+Key的方式对Url签名防篡改
- Kafka 新版Producer Java版代码阅读
- 4002 大数 java
- java笔记三
- Windows下多版本Java并存问题
- p12格式的安全证书在Java项目中使用
- java笔记二
- java笔记一
- java中的移位运算符:<<,>>,>>>总结
- 反射技术在工厂设计模式中的应用
- 用Java实现向Cassandra数据库中插入和查询数据
- Java多线程小测试