日期:2014-05-17  浏览次数:20694 次

请求服务端,返回Json数据后是乱码
我是通过js,动态创建了一个script块,块里是我从服务端(SpringMVC)请求过来的json数据,
然后有一个回调函数来处理这些数据.
现在返回来的这些数据都是乱码,不知道是何原因

JS代码:
/**
 * 进行请求
 */
function fillSlot(slotId) {
var element = document.createElement("script");
element.src = "http://localhost/advert/genercal/getJsonData/123";
element.charset="utf-8"
document.getElementsByTagName("head")[0].appendChild(element);
}

/**
 * 返回数据后的回调函数
 */
function jsonpCallback(result){
        alert(result);
}


Java代码
@RequestMapping(value = "/genercal/getJsonData/{slotId}")
public @ResponseBody String getJsonData(@PathVariable Short slotId) {
Map<String,Object> result = new HashMap<String, Object>();
result.put("key","这是中文");
/**
 * 生成相关数据
 */
JSONObject jo = new JSONObject(result);
return "jsonpCallback('"+jo.toString().replace("\\", "")+"')";
}
------解决方案--------------------
所有的编码格式都是utf-8的吗?
------解决方案--------------------
引用:
所有的编码格式都是utf-8的吗?


是的. 返回过去就是乱码
------解决方案--------------------
有一种办法,我在后台的数据encode一下,然后在js中decode
但是解码之后的文字并不是原始的数据,存在一些问题...
------解决方案--------------------
解决了,用decodeURIComponent就可以解码了