`
屌丝学Java
  • 浏览: 30782 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ajax发送请求到Spring MVC的Controller 返回json字符串乱码

    博客分类:
  • Java
 
阅读更多
copy地址:http://blog.csdn.net/dangerous_fire/article/details/25904225

第一种解决方法,适用所有情况
因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码,解决办法是不用注解,直接用response,转换编码。

@RequestMapping("/modifyconfiginput")  
@ResponseBody  
public String modifyinput( @RequestParam(value="id") String id,   
                           @RequestParam(value="timestamp") String timestamp,   
                           HttpServletResponse response ) throws Exception {   
    ImmediateConfig ic = this.immediatePictureService.findImmediateConfig(id);   
    String json = "["+"{name:'"+ic.getName()+"',classId:'"+ic.getProductClass().getClassId()+"',pyFile:'"+ic.getPyFile()+"'}]";   
    System.out.println("json:"+json);   
    //return json;   
    // 设置response的ContentType解决中文乱码   
    response.setContentType("text/html;charset=UTF-8");   
    response.getWriter().print(json);   
    return null;   
} 


第二种解决方法,可用于新版本的spring
@RequestMapping(value="/ajaxCounterList", produces = "application/json; charset=utf-8")  

注意:在IE浏览器中必须声明返回的类型,如下
@RequestMapping(value="/upload/upload",produces="text/html;charset=UTF-8")
或者用第一种方法,但也要声明为 text/html 类型,否则IE无法识别,会报错误


我是橄榄绿
分享到:
评论

相关推荐

    json 中文乱码解决方案

    - **发送请求时**:确保Ajax请求的`Content-Type`头设置为`application/json;charset=UTF-8`。 - **接收响应时**:前端接收服务器返回的JSON数据时,确保解析前的编码是正确的。例如,在jQuery中可以通过`$.ajax({...

    spring mvc 自學筆記

    - **JSON 对象绑定**:Spring 支持直接将 JSON 字符串转换为 Java 对象。 ```java @RequestMapping(value = "/ajax", method = RequestMethod.POST) @ResponseBody public String handleAjaxRequest(@RequestBody ...

    Spring MVC面试题(2022最新版)

    前端可以通过AJAX技术(如jQuery的$.ajax()方法)发送异步请求,并处理后端返回的数据。 如何解决POST请求中文乱码问题,GET的又如何处理呢? - 对于POST请求,可以在web.xml中配置字符编码过滤器,确保所有请求都...

    Spring MVC面试宝典1.pdf

    - **重定向**:在控制器方法中返回一个字符串"redirect:/url"。 - **转发**:返回一个视图名称,SpringMVC会自动进行转发处理。 ##### 3.3 SpringMVC怎么和AJAX相互调用的? SpringMVC支持通过AJAX进行异步请求处理...

    用ajax传递json到前台中文出现问号乱码问题的解决办法

    JSON格式的数据本质上是以字符串的形式存在,因此,当服务器端生成JSON字符串时,使用的编码格式就至关重要。 在上述描述中,开发者遇到了一个典型的编码问题。具体问题出现在使用了SpringMVC框架的开发场景中,在...

    解决SpringMvc后台接收json数据中文乱码问题的几种方法

    在接收到请求参数时,你可以使用`new String(bytes, "UTF-8")`的方式来转换字符串的编码。例如,在`@RequestParam`注解的参数前,你可以先获取原始的字节数组,然后用`getBytes("ISO-8859-1")`将其转换为ISO-8859-1...

    EXT异步提交FORM表单

    - **处理返回值**:Spring MVC支持直接返回字符串类型的结果,这些结果会被自动转换成JSON格式发送给客户端。 ```java @ResponseBody public String submit(...) { return "{\"status\":\"success\"}"; } ```...

    java web SpringMVC后端传json数据到前端页面实例代码

    SpringMVC可以自动地使用诸如Jackson或Gson等库将Java对象转化为JSON字符串。开发者也可以自定义转换过程。 4. 实现后端向前端传递JSON数据: 在本实例中,后端使用@RequestBody注解获取JSON格式的输入数据,然后...

    js传中文参数controller里获取参数乱码问题解决方法

    - **URL编码**:对于GET请求中的URL参数,可以通过JavaScript中的`encodeURIComponent()`函数对中文字符串进行编码,防止传输过程中出现乱码。 - **AJAX请求**:使用jQuery等库的`$.ajax()`方法时,可以在请求头中...

Global site tag (gtag.js) - Google Analytics