页面编码为UTF-8的项目中servlet中文显示乱码的解决方法

servlet中文显示乱码:
1、servlet中输出中文字符
2、servlet接收表单传值并显示,表单字段含中文。

servlet中文显示乱码:

第一种情况:servlet中输出中文字符,如:

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  out.println("  <BODY>");
  out.print(" 中国网页设计http://www.125jz.com-最权威的网页设计教程站 ");
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
 }

运行显示:??????http://www.125jz.com-???????????

解决方法:
把response.setContentType(“text/html”);改为response.setContentType(“text/html;charset=UTF-8”);

第二种情况:servlet接收表单传值并显示,表单字段含中文。

如:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

 response.setContentType(“text/html;charset=UTF-8”);
request.setCharacterEncoding(“UTF-8”);

PrintWriter out = response.getWriter();
out.println(“<!DOCTYPE HTML PUBLIC \”-//W3C//DTD HTML 4.01 Transitional//EN\”>”);
out.println(“<HTML>”);
out.println(”  <HEAD><TITLE>A Servlet</TITLE></HEAD>”);
out.println(”  <BODY>”);
String name=request.getParameter(“name”);//接收表单传递的参数值,含中文。
out.println(“hello “+name);
out.println(”  </BODY>”);
out.println(“</HTML>”);
out.flush();
out.close();
}

解决方法:在servlet程序中加上以下代码就可以了:
response.setContentType(“text/html;charset=UTF-8”);
request.setCharacterEncoding(“UTF-8”);

如果页面编码是gb2312只需将以上代码中的UTF-8换成gb2312即可。

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/5111.html

赞 (0)
江山如画的头像江山如画管理团队
MVC详解:模型(Model)-视图(View)-控制器(Controller)
上一篇 2020年2月23日 上午11:32
myeclipse注册方法(在哪输入注册码?)
下一篇 2020年2月23日 上午11:50

99%的人还看了以下文章

  • 怎么让一长串英文字符自动换行?

    长串英文字符之间没有空格,整串都显示在一行,撑破了div,甚至跑到屏幕外了,如何解决? <!doctype html> <html> <head> <meta charset=”utf-8″> <title>怎么让一长串英文字符自动换行?|www.125jz.com</title> &l…

    2019年11月20日
    8.1K0
  • 手把手,永哥教你学会css sprite(雪碧图)技术

    css sprite又称雪碧图或css精灵。 雪碧图就是将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分。 雪碧图被运用在众多使用了很多小图标的网站上。相对于把每张小图标以.png格式文件的形式引用到页面上,使用雪碧图只需要引用一张图片,对内存和带宽更加友好。 css sprite优点: 有效减少网站的http请求数量,加…

    2018年2月20日
    18.8K0
  • 第12课:高度和宽度

    到目前为止,我们还没有在元素尺寸方面给予关注。在这一课,我们将看到为元素定义高度和宽度是十分简单的。 设定宽度[width] 设定高度[height] 设定宽度[width] 你可以通过width属性来设定一个元素的宽度,即在水平方向上的尺寸。 下面是一个简单的例子,它为我们提供了一个可以容纳文本的盒子: div.box {width: 200px;bord…

    2020年2月25日
    10.1K0
  • CSS常用类/ID命名规范

    书写规范请查看《CSS语法及命名规范(入门)》,本文介绍常用类/ID命名规范,CSS文件命名规范,如页面主体:main 内容:content 标签页:tab  章列表:list 信息:msg   标题:title   热点:hot 新闻:news注册:regsiter 合作伙伴:partner 友情链接:friendlink 页脚:footer 版权:cop…

    2019年3月14日
    12.0K0
  • 0基础学CSS

    本CSS教程能够让你在数小时内入门CSS,要求你有基本的HTML经验。

    2020年2月22日
    11.8K0
  • 哪些浏览器支持HTML5?

    目前支持HTML5的浏览器主要有: 谷歌浏览器(全面支持HTML5)、360浏览器、搜狗浏览器、世界之窗、Firefox、Safari、Opera、QQ浏览器、傲游浏览器、IE10。 如要下载支持HTML5的浏览器,请到官网下载!

    2019年3月13日
    12.5K0

发表回复

登录后才能评论