js获得servlet发的数据中文乱码

java

 resp.setContentType("text/html;charset=UTF-8");
            resp.setCharacterEncoding("charset=UTF-8");
            resp.setHeader("content-type", "text/html;charset=UTF-8");
            writer.write(getjsongread);

js

 var gradejson;
    var xmlhttp = getxmlhttp();
    xmlhttp.open("post", "maininit", true);
    xmlhttp.setRequestHeader("Content-type",
            "application/x-www-form-urlencoded;UTF-8");

    xmlhttp.send();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4)
            if (xmlhttp.status != 200) {
            } else {
                grade = xmlhttp.responseText;
                gradejson = JSON.parse(grade);

                console.log(gradejson);

5个回答

Eclipse中JSP文件默认的编码方式是“ISO-8859-1”,它是不支持中文的,因此需要把编码方式改成UTF-8才能支持中文的显示。

看了楼主贴出的源码,初步分析问题的产生是由于楼主项目整体上时用的并不是UTF-8编码的,这样即使在 resp.setCharacterEncoding("charset=UTF-8");的情况下中文还是出现了乱码的情况,建议楼主修改一下整体项目的编码设置。修改过程中一个要注意备份,我曾经遇见过将项目编码切换为UTF-8后项目中的中文全部乱码的情况,回退也无法恢复的情况。一定要注意这个问题!!!

应该是字符编码的问题

先确定一下在后台的时候是否就已经乱码啦?在确定jsp页面和后台这个类的编码方式是否是utf-8?还有就是你用的tomcat的默认编码方式是否是utf-8?

检查前台文件是否已经存储为utf-8编码,并且meta是否增加了charset=utf-8。出现乱码就是前后台编码不一致导致的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐