我在一个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格式的,但是显示的时候就是乱码, 请各位帮忙看看什么问题, 问题解决当即给分.

解决方案 »

  1.   

    content="text/html; charset=utf-8" 这个是告诉浏览器,是什么编码html 文件自己也有编码
      

  2.   

    你的 content.js 也保存为utf-8编码了吗?
      

  3.   

    楼上几位,每一个文件我都看过,是utf-8编码的;
      

  4.   


    确认文件存储编码也是utf-8吗?都统一为utf-8应该不会出乱码的
      

  5.   

    如果你是用记事本编辑的content.html话,保存的时候要保存为utf-8而不是默认的ANSI
      

  6.   


    是不是 json的编码的问题
    统一的 UTF-8
      

  7.   

    <script src="./js/content.js" charset="gbk" type="text/javascript">
      

  8.   

    恩,是的确认存储编码为utf-8,我知道是不是loadhtml了整个静态网页导致的问题。
      

  9.   


        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
      

  10.   

    所有的前端网页也都检查过了,文件存储格式为utf-8, html头里面都有charset=utf-8;好诡异...
      

  11.   

                    response.setContentType("text/html;charset=UTF-8");
    response.setContentType("application/x-json");
                    request.setCharacterEncoding("utf-8");
      我每次写servlet 都加上这三句,没出过乱码啊 ,你试试
      

  12.   

    你把应用服务器 server.xml里面加上URIEncoding="utf-8" 例如:在<Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />这里面添加即可
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"  URIEncoding=utf-8/> 
      

  13.   

    谢谢各位的回复, 问题找到了,servlet中使用了网上的一个jsonp filter,里面把我的字符串重新进行了编码,从而导致了这个问题。 这个还是应该自己认真去排查,放到这里没有什么上下文的话,是不太好解决。再次谢谢各位的回复,结贴。