ajax中返回的json数据格式的中文字符乱码

bosaidongmomo 2017-10-04 09:12:22
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"%>
也是不起作用
...全文
840 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bosaidongmomo 2017-10-10
  • 打赏
  • 举报
回复
复制错了。 response.setHeader("content-type", "text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8"); 这三句在servlet里起到了决定性的作用。
引用 1 楼 net_lover 的回复:
在web.xml中,加下面的编码过滤器
<filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>
引用 1 楼 net_lover 的回复:
在web.xml中,加下面的编码过滤器
<filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>
bosaidongmomo 2017-10-10
  • 打赏
  • 举报
回复
我在Servlet里添加了这几句话 request.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8"); String type = request.getParameter("operate"); 并且把编译器中该设置的编码,都设置成了UTF-8, 并且把文件都改成了UTF-8格式 JS中ajax的数据格式为‘json’ scriptCharset : 'utf-8', contentType : 'application/x-www-form-urlencoded;', 并且添加了这两行。 不再乱码。
引用 1 楼 net_lover 的回复:
在web.xml中,加下面的编码过滤器
<filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>
孟子E章 2017-10-04
  • 打赏
  • 举报
回复
在web.xml中,加下面的编码过滤器
<filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧