首页 新闻 搜索 专区 学院

servlet/jsp 中文乱码

0
悬赏园豆:30 [已解决问题] 解决于 2012-07-12 11:36

写了个简单的从jsp提交用户名密码到servlet的程序。通过servlet直接在页面输出用户名和密码。不料显示中文名是乱码。该程序不涉及数据库。字符编码我默认都是UTF-8。详细情况见截图。

仰望星空的耕田人的主页 仰望星空的耕田人 | 初学一级 | 园豆:6
提问于:2012-06-29 07:57
< >
分享
最佳答案
0

问题在于custname,也就是你发送请求的数据编码和接收的不一致。看看你请求页面的编码是什么,gbk或者utf-8,如何后台

request.setCharacterEncoding("UTF-8")或者request.setCharacterEncoding("GBK").
收获园豆:10
润无声 | 菜鸟二级 |园豆:214 | 2012-07-11 09:36
其他回答(2)
0

在response.getWriter()之前加上这两行代码试试:

response.setCharacterEncoding("utf-8");   
response.setContentType("text/html; charset=utf-8");
收获园豆:10
artwl | 园豆:16536 (专家六级) | 2012-06-29 08:46

还是有乱码。

0

在获取请求参数值之前加上:

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");  

或者写一个拦截器,在web.xml配置上就好了

public class EncodingFilter implements Filter {
    
    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain filterChain) throws IOException, ServletException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        filterChain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        
    }

 

 

收获园豆:10
CN.programmer.Luxh | 园豆:362 (菜鸟二级) | 2012-07-11 11:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册