黑马程序员技术交流社区

标题: 关于Servlet乱码的问题 [打印本页]

作者: 水云间    时间: 2013-5-28 14:21
标题: 关于Servlet乱码的问题
学到Servlet后,令人头疼的问题就是乱码问题,如下代码:
  1. package cn.itcast.jspservlet;

  2. import java.io.IOException;
  3. import java.io.PrintWriter;

  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;

  8. public class servletDemo2 extends HttpServlet {

  9.        
  10.         public void doGet(HttpServletRequest request, HttpServletResponse response)
  11.                         throws ServletException, IOException {

  12.                 response.setCharacterEncoding("UTF-8");
  13.                
  14.                
  15.                 PrintWriter out = response.getWriter();
  16.                
  17.                 out.write("中国");
  18.         }

  19. }
复制代码
启动Tomcat 6.0,并发布后,在浏览器上输出的却是“涓浗”,这是怎么回事?我明明已经指定编码表了,怎么还乱码呢
作者: ZhaoYuBetter    时间: 2013-5-28 14:36
乱码问题:
a.调用JSP乱码的处理:
                        1.确保JSP 文件 的保存的编码格式为 UTF-8;
                        2.确定JSP 页面 的使用的字符集为 UTF-8;
                                <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
                b.调用Servlet乱码的处理:
                        1.在Servlets使用response对象输出内容之前,
                          先执行 response.setContentType("text/html;charset=utf-8");  // 设置文档类型与字符编码
                          Tomcat服务器默认在Servlet的response对象输出的内容使用的iso8859-1字符编码;
                         注意:这里设置的编码方法,跟 过滤器无关,因为是直接访问 Servlet

作者: gerenvip    时间: 2013-5-28 23:15
本帖最后由 gerenvip 于 2013-5-28 23:18 编辑

//通知浏览器以utf-8打开
response.setContentType("text/html;charset=utf-8");
//response.setHeader("Content-Type", "text/html;charset=utf-8");
//提供关于response对象码表开关
response.setCharacterEncoding("utf-8");
作者: 殇_心。    时间: 2013-5-29 16:55
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2