ajax中返回的json数据格式的中文字符乱码
for (Teacher teacher : list) {
JSONObject jo = new JSONObject();
//String teaID=teacher.getTeaID();
//String teaPwd=teacher.getTeaPwd();
//String teaName=teacher.getTeaName();
jo.put("teaID",teacher.getTeaID());
jo.put("teaPwd", teacher.getTeaPwd());
jo.put("teaName", teacher.getTeaName());
jsonArray.add(jo);
try {
System.out.println("diaryjson:"+URLDecoder.decode(jo.toString(),"utf-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我将Teacher数据类型的List转换成json格式,方便在页面获取。
并且在控制台输出。
输出结果为:diaryjson:{"teaID":"1001","teaPwd":"du","teaName":"zhangsan"}
diaryjson:{"teaID":"1002","teaPwd":"cu","teaName":"李四"}
下面是Js中的ajax
$.ajax({
url : param,
type : "POST",
data : "user=" + id,//将登录信息连接成字符串,作为发送请求的参数
dataType : "json",
contentType : 'application/x-www-form-urlencoded; charset=UTF-8',
error : function(data) {
alert("查询失败")
},
success : function(data) {
alert(data.length)
var tableStr
for(var i= 0;i<data.length;i++){
tableStr+="<tr>"+"<td>"+data[i].teaID+"<td>"+"<td>"+data[i].teaPwd+"<td>"+"<td>"+data[i].teaName+"<td>"+"<tr>"
}
tableStr+=
$("#teacher-tbody").html(tableStr);
}
});
但是中字符[李四] 就是?? 寻求解决办法。
在Servlet中也有response.setContentType("text/html,charset=utf-8");
request.setCharacterEncoding("UTF-8");
不起作用
页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
也是不起作用