网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

JavaServlet输出中文乱码怎么办

这篇文章主要为大家展示了Java Servlet输出中文乱码怎么办,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

成都创新互联2013年至今,是专业互联网技术服务公司,拥有项目成都网站建设、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元江达做网站,已为上家服务,为江达各地企业和个人服务,联系电话:028-86922220

1.现象:字节流向浏览器输出中文,可能会乱码(IE低版本)

private void byteMethod(HttpServletResponse response) throws IOException, UnsupportedEncodingException {
    String date = "你好";
    ServletOutputStream outputStream = response.getOutputStream();
    outputStream.write(date.getBytes();
  }

原因:服务器端和浏览器端的编码格式不一致。

解决方法:服务器端和浏览器端的编码格式保持一致

private void byteMethod(HttpServletResponse response) throws IOException, UnsupportedEncodingException {
    String date = "你好";
    ServletOutputStream outputStream = response.getOutputStream();
    // 浏览器端的编码
    response.setHeader("Content-Type", "text/html;charset=utf-8");
    // 服务器端的编码
    outputStream.write(date.getBytes("utf-8"));
  }

或者简写如下

private void byteMethod(HttpServletResponse response) throws IOException, UnsupportedEncodingException {
    String date = "你好";
    ServletOutputStream outputStream = response.getOutputStream();
    // 浏览器端的编码
    response.setContentType("text/html;charset=utf-8");
    // 服务器端的编码
    outputStream.write(date.getBytes("utf-8"));
  }

2.现象:字符流向浏览器输出中文出现 ???乱码

private void charMethod(HttpServletResponse response) throws IOException {
    String date = "你好";
    PrintWriter writer = response.getWriter();
    writer.write(date);
  }

原因:表示采用ISO-8859-1编码形式,该编码不支持中文

解决办法:同样使浏览器和服务器编码保持一致

private void charMethod(HttpServletResponse response) throws IOException {
    // 处理服务器编码
     response.setCharacterEncoding("utf-8");
    // 处理浏览器编码
     response.setHeader("Content-Type", "text/html;charset=utf-8");
    String date = "中国";
    PrintWriter writer = response.getWriter();
    writer.write(date);
  }

注意!setCharacterEncoding()方法要在写入之前使用,否则无效!!!

或者简写如下

private void charMethod(HttpServletResponse response) throws IOException {
    response.setContentType("text/html;charset=GB18030");
    String date = "中国";
    PrintWriter writer = response.getWriter();
    writer.write(date);
  }

以上就是关于Java Servlet输出中文乱码怎么办的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。


当前题目:JavaServlet输出中文乱码怎么办
本文来源:http://bjjierui.cn/article/gdcegi.html

其他资讯