spring mvc 返回给jquery ajax 请求的数据包含中文问题

本次应用场景:

后台:spring mvc

 前端:jquery ajax json.js

 

spring mvc代码:

@RequestMapping(....)

public @ResponseBody String getSomething(HttpServletResponse response)

{

response.setHeader("Charset","UTF-8");   //设置编码为utf-8

//业务代码

 

//return str;

//之前是直接返回字符串,研究发现,spring使用注解时在代码内部使用了硬编码iso-8859-1

//后续补充:如果将str重新编码后返回也是可以完成同样效果,

//代码: return new String(str.getBytes("utf-8"),"iso-8859-1");

//如果使用如下方式返回就没有问题。

response.getWriter().print(str);

return null;

}

这样返回给前端时,只要通过JSON.parse(str)就可以将ajax返回的字符串转换成json对象(注,返回的字符串要满足json格式,{“id”:"101"}或者数组形式[{“id”:"101"},{“id”:"102"}])

 

如果返回的是一个List<Object>类型的list,

var jsonStr = JSON.JSON.stringify(lsit) //将list转换成json串

var json = var obj = eval('(' +jsonStr+ ')');//将json串转换成json对象,然后进行操作

如:var id = json.id; 


后续补充:其实在requestMapping中设置produces编码为utf-8即可 方便又省事。

@RequestMapping(produces={"application/json;charset=UTF-8"}).

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值