servlet 中 printWriter打印到页面内容 中文乱码

Servlet输出

Servlet可以用两种方式向浏览器输出内容:

  1. 字节流方式 —— 输出到response.getOutputStream()。一般用来输出二进制内容,例如图片。
  2. 字符流方式 —— 输出到response.getWriter()。用来输出文本类型的内容,如HTML和纯文本。

在此我们只讨论输出文本的情形:response.getWriter()。在调用response.getWriter()前,我们必须设置content type:

 

  1. response.setContentType("text/html; charset=GBK");

response.getWriter()

 

-------------------测试代码问题如下:




页面编码是utf-8,浏览器编码是utf-8,页面的中文显示正常,从servlet中输出的中文乱码? ??


@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("处理post请求");
      /*  PrintWriter out=resp.getWriter();
               resp.setContentType("text/html;charset=utf-8");
out.println("post 请求处理完成!");*/
 
resp.setContentType("text/html;charset=utf-8");
ServletOutputStream out_stream=resp.getOutputStream();
out_stream.println(" post 请求处理完成!");
}


SEVERE: Servlet.service() for servlet [HelloServlet] in context with path [/Dxm_Job] threw exception

java.io.CharConversionException: Not an ISO 8859-1 character: 请
at javax.servlet.ServletOutputStream.print(ServletOutputStream.java:77)

at javax.servlet.ServletOutputStream.println(ServletOutputStream.Java:187)







@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("处理post请求");
 PrintWriter out=resp.getWriter();
         resp.setContentType("text/html;charset=GBK");
         String str=new String("请求处理完成");
out.println(str); 
 

}


----------------------还是输出?????? 乱码





@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("处理post请求");
 PrintWriter out=resp.getWriter();
         resp.setContentType("text/html;charset=utf-8");
         resp.setCharacterEncoding("utf-8");
         String str=new String("请求处理完成".getBytes("iso-8859-1"),"utf-8");
out.println(str); 

}


----------还是出现?????? 乱码。



@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("处理post请求");
 PrintWriter out=resp.getWriter();
         resp.setCharacterEncoding("utf-8");
         String str=new String("请求处理完成".getBytes("utf-8"));
out.println(str); 
 
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值