问题描述
- java前端jquery接接收中文字符串乱码问题
-
服务端:@RequestMapping(value="/detail/modSelect", method = {RequestMethod.POST})
public @ResponseBody String mod(@RequestBody String reqParam){
//修改请求处理
System.out.println("修改请求发送到此");
System.out.println(reqParam);
ExpressLineInfo lineInfo = new ExpressLineInfo();
String[] str = reqParam.split("&");
String areaId = str[0].split("=")[1];String neiAreaId = str[1].split("=")[1];
int distance = Integer.parseInt(str[2].split("=")[1]);
String direct = str[3].split("=")[1];
int hot = Integer.parseInt(str[4].split("=")[1]);lineInfo.setAdcd(areaId); lineInfo.setDirect(direct); lineInfo.setDistance(distance); lineInfo.setScope_adcd(neiAreaId); lineInfo.setScope_hot(hot); int result = regionInfoService.updateScope(lineInfo); if(result==1){ return "修改成功!"; }else{ return "修改失败!"; } }
前端jquery: $.post("/detail/modSelect.htm",
"areaId="+areaId+"&neiAreaId="+neiAreaId+"&distance="+distance+"&direct="+direct+"&hot="+hot,
function(data,statusText){
alert(data);
});
回掉函数里的data即为服务端返回的中文字符串,用alert在页面输出后显示为????!
返回英文则是正常的。
求高手帮忙解答,如何让它显示正常的中文,感激不尽!
解决方案
ajax 同步调用 返回字符串 java例子(全)及 从后台返回中文乱码解决方法
解决方案二:
服务端需返回 utf-8 编码数据
如返回的不是 utf-8 的,需加上相应语言声明的头
具体代码要看你的服务端语言
解决方案三:
用UTF8编码,然后获取的时候用UTF8解码
解决方案四:
服务器端采用URLEncoder.encode(str, "utf-8");进行编码
前端采用decodeURIComponent(data);进行解码
解决方案五:
前台页面编码跟后台编码一致。
http://www.cnblogs.com/liuling/archive/2013/03/31/encoding.html