我在一个index.html(文件类型:UTF-8, 添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />)
里面通过点击事件触发 $("#content").load("content.html");content.html内容如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="./js/content.js" type="text/javascript">
</script>
<link rel="stylesheet" type="text/css" href="./css/table.css""/>
<title>内容</title>
</head>
<body>
</body>
</html>
content.js 代码:
$(document).ready(function(){
$.ajax({
type: "get",
url: "http://localhost:8080/Demo/request",
dataType: "jsonp",
jsonp: "callback",
data: null,
async: false,
success: function(data){
$.each(data, function(i, item){
alert(item.text);
});
}
})
});
我确定返回的json中中文是utf-8格式的,但是显示的时候就是乱码, 请各位帮忙看看什么问题, 问题解决当即给分.
里面通过点击事件触发 $("#content").load("content.html");content.html内容如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="./js/content.js" type="text/javascript">
</script>
<link rel="stylesheet" type="text/css" href="./css/table.css""/>
<title>内容</title>
</head>
<body>
</body>
</html>
content.js 代码:
$(document).ready(function(){
$.ajax({
type: "get",
url: "http://localhost:8080/Demo/request",
dataType: "jsonp",
jsonp: "callback",
data: null,
async: false,
success: function(data){
$.each(data, function(i, item){
alert(item.text);
});
}
})
});
我确定返回的json中中文是utf-8格式的,但是显示的时候就是乱码, 请各位帮忙看看什么问题, 问题解决当即给分.
确认文件存储编码也是utf-8吗?都统一为utf-8应该不会出乱码的
是不是 json的编码的问题
统一的 UTF-8
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, java.io.IOException {
resp.setCharacterEncoding("UTF-8");
resp.setContentType("application/json; charset=utf-8");
PrintWriter out = resp.getWriter();
out.println("[{\"id\":1, \"name\":\"中文\"},{\"id\":2, \"name\":\"英文\"}]");
out.close();
}
这个是服务器servlet的返回, 文件格式为utf-8
response.setContentType("application/x-json");
request.setCharacterEncoding("utf-8");
我每次写servlet 都加上这三句,没出过乱码啊 ,你试试
connectionTimeout="20000"
redirectPort="8443" />这里面添加即可
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding=utf-8/>