日期:2014-05-16  浏览次数:20677 次

采用ajax与服务器通信,但是返回中文,显示乱码, 求解决
本帖最后由 scookiem 于 2013-06-25 23:25:19 编辑
这个是ajax的代码(部分)
$.ajax({
    url: "getfriendinfo",
    type: "post",
    data: {fid:fid},
contentType: "application/x-www-form-urlencoded;charset=utf-8",
    success: function(data){
          $(data).find("friend").each(function(){
          var nickname=$(this).find("nickname").text(); //nickname
 var sex=$(this).find("sex").text();//sex
 var age=$(this).find("age").text();//age
 if(sex="man")
 sex="男";
 else
 sex="女";
 $("#nickname"+fid).text("昵称:"+nickname);
 $("#age"+fid).text("年龄:"+age);
 $("#sex"+fid).text("性别:"+sex);
 });

这个是服务器java代码(部分)

resp.setContentType("text/xml;charset=UTF-8'");
buf.append("<?xml version='1.0' encoding='UTF-8'?>");
if (rs != null && rs.next()) {
buf.append("<friend>");
buf.append("<nickname>"+rs.getString("nickname")+"</nickname>");
buf.append("<age>"+rs.getString("age")+"</age>");
buf.append("<sex>"+rs.getString("sex")+"</sex>");
buf.append("</friend>");
}
pw.write(buf.toString());
pw.flush();

求速解决啊大神,卡在这好久了

------解决方案--------------------
没有完整的环境  我只能猜猜可能出现的情况
1.你的数据 是导入/复制进去的    这就是数据库的编码格式错误
2.你的编辑器 看看它的格式 是不是UTF8
3.抓包看看你ajax回调的数据是不是乱码   
------解决方案--------------------
编码统一起来,jsp文件的存储编码也要为utf-8
------解决方案--------------------
resp.Charset = "UTF-8",仅供参考。