A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蒋欣琦 中级黑马   /  2012-11-2 13:00  /  1593 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当用Servlet来处理http请求并产生返回的HTML页面时,如何使HTML页面中的中文字符能够正常显示?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
在servlet里可以setContentType来修改当前页面的语言属性,最好跟数据库相对,比如我的就是gbk,再不行就utf-8:
比如这个 .setContentType("text/html;charset=gbk");

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
统一处理好字符集问题。
Public String translate (String str) {

   String tempStr = "";

   try {

     tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");

     tempStr = tempStr.trim();

   }

   catch (Exception e) {

     System.err.println(e.getMessage());

   }

   return tempStr;

}

回复 使用道具 举报
try {
                        response.setContentType("text/html;charset=gb2312");
                        PrintWriter out = response.getWriter();
                        String uName = request.getParameter("name");
                        //解决页面端传来的中文乱码
                        String name = new String(uName.getBytes("iso8859-1"),"utf-8");

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
通过HttpResponse定义的方法getOutputStream()可以获得ServletOutputStream的实例,这样用户就可以利用ServletOutputStream.write方法向输出流中写入返回页面的内容. 但是ServletOutputStream使用的是缺省的编码方式,如果要使返回页面中的中文字 符能够正常显示,最好显示地指定所用的字符编码方式. 通常需要构造一个 OutputStreamWriter , 例程如下:
  public void doGet (HttpServletRequest req, HttpServletResponse res)
  throws ServletException, IOException
  {
  res.setContentType("text/html");
  ServletOutputStream out = res.getOutputStream();
  OutputStreamWriter ow = new OutputStreamWriter(out,"GB2312");
  ow.write("这是中文");
  ow.flush();
  ow.close();
  }

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马