java - 关于servlet中乱码的疑惑
阿神
阿神 2017-04-18 09:50:57
[Java讨论组]

如何设置编码方式从而在浏览器端正确显示中文
下面是测试的servlet小程序

public class TestDemo extends HttpServlet
{
    ServletConfig config;
    public void init(ServletConfig config)throws ServletException{
        this.config = config;
        System.out.println("你好");//此处在tomcat中显示的也是乱码
    }
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException,IOException{ 
        resp.setCharacterEncoding("UTF-8");//此处setCharacterEncoding的意思是否就是将resp响应的内容以utf-8的编码方式传输
        resp.setContentType("text/html;charset=UTF-8");//此处setContentType的意思是否是在浏览器端以utf-8的方式显示
        PrintWriter out = resp.getWriter();
        String data = "你好";
        out.print(data);
    }
}

服务器用的是tomcat,正确设置了web.xml。(不知道这和tomcat有没有关系)
以上设置之后浏览器显示的是乱码,请问错在哪里了呢?

阿神
阿神

闭关修行中......

全部回复(5)
PHP中文网

Tomcat的原因,我之前遇到这个问题,搜了一下说是tomcat编码的问题,需要更改tomcat的一个配置文件,我没改。把传递方式从post改成get就好了,
或者加下面也可以解决这个问题

        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
高洛峰

你的servlet文件编码以及页面文件编码是不是utf-8

怪我咯

乱码问题,依次检查以下几个
容器(tomcat)、页面、数据库、过滤器、编码编译

所以你检查下tomcat、编码编译

大家讲道理

get中的中的中文需要手动装码解码

大家讲道理

补充一下上面的回答:除了servlet输出设置编码、tomcat设置编码以外,还要注意jsp的编码,jsp的<head></head>标签中要有这么一个声明:<meta charset="UTF-8">;最后还要看下你的浏览器编码,以谷歌浏览器为例,点击右上角的按钮---更多工具---编码---UTF-8 要选中

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号