关于jsp乱码问题

原创 2006年06月01日 10:06:00
关于jsp乱码问题,首先要看浏览器是否支持中文,得看浏览器的编码是否设置好.或者干脆在jsp页面头上加上<%@page language="java" contentType='text/html; charset=GBK"%>或者<%@page language="java" contentType='text/html; charset=gb2312"%>.
    其实对一些什么做也无法消除的中文乱码问题,就要考虑下提交方式是get还是post,用post比get安全的多,因为get常常会因为浏览器的比兼容性而出现意想不到的乱码,只要改成post,那么问题便解决啦.也即:doPost(HttpServletRequest request, HttpServletResponse response),如果非要用get的方法进行传递的话,那么可以这样解决:打开tomcat的server.xml文件,然后往其中加上URIEncoding=“GBK"  .重启tomcat就OK了.
    对于内容的提交我们还可以像下面这样设置,这样提交的任何信息都能正确地显示:
try
{
  byte[] tempByte = Str.getBytes("ISO-8859-1")
  Str = new String(tempByte,"GB2312");
//即new String(Str.getBytes("ISO-8859-1"),"GB2312")
}
catch ( Exception ex )
{
}
    还要提到的一点是数据库中的乱码.当写入时发生乱码.解决办法是配置一个filter. 代码如下:
jdbc: mysql: //localhost: 3306/db? useUnicode=true&characterEncoding = GBK
这样也便解决数据库中大部分的乱码问题.
    上面只是对数据库问题提到用filter,但鼓浪bbs上有人讲大都都可以用filter,他讲的是很有道理.
其实我们可以在tomcat的webapps/servlet-examples目录中找到SetCharacterEncodingFilter类的源代码.如下:
    package filters;
    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.UnavailableException;
    public class SetCharacterEncodingFilter implements
Filter{
      protected String encoding=null;
      protected Filter Config filterConfig=null;
    protected boolean ignore=true;
    public void destroy(){
      this.encoding=null;
      this.filterConfig=null;
      }
      public void doFilter(ServletRequest request, Ser-
      vletResponseresponse,  FilterChainchain)
      throws IOException, ServletException{
      // Conditionally select and set the character a ncoding
        to be used
      if (ignore II (request.getCharacterEncoding()==
      null)){
 String encoding=selectEncoding(request);
      if (encoding !=null)
      request.setCharacterEncoding(encoding);
        }
      //Pass controlon to the nextfilter
      chain.doFilter(request, response);
      }
      public void init(FilterConfig filterConfig) throws
ServletException{
        this.filterConfig=filterConfig;
      this.encoding=filterConfig.getInitParameter("en-
coding" );
        String value=filterConfig.getInitParameter("ig-
nore");
        if (value == nu 11)
          this.ignore=true;
      elseif (value.equalsIgnoreCase("true"))
          this.ignore=true;
      else if (value.equalsIgnoreCase("yes"))
          this.ignore=true;
        else
        this.ignore = false;
      }
      protected String selectEncoding(ServletRequest re-
quest){
        return (this.encoding);
      }
但是毕竟filter是Servlet2.3版本才新增加的,多少有点限制啦

关于servlet/jsp的中文乱码问题

浏览器接收到响应的html时,必须知道如何正确解释文字编码,这可以使用HttpServletResponse进行响应之前,通过setContentType()进行设置,例如若要传送给浏览器utf-8编...
  • u011482680
  • u011482680
  • 2014年06月07日 14:15
  • 402

JSP中文乱码问题终极解决方案(下)

本文首先从四个方面给出了在使用JSP过程中可能出现中文乱码的情形,具体包括JSP页面中文乱码、JSP源文件中文乱码、GET 请求的请求参数为中文乱码 和 POST 请求的请求参数为中文乱码四种情形,并...
  • justloveyou_
  • justloveyou_
  • 2017年02月19日 22:42
  • 5466

JSP页面表单提交时出现中文乱码的解决方法

shiyong
  • shenlan18446744
  • shenlan18446744
  • 2014年05月11日 08:29
  • 4855

关于jsp乱码问题

初学Jsp在使用工具的时候遇见中文乱码问题,网上搜索相关文章。 1,最基本的乱码问题。 这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。 中文问题 我是个好...
  • abczn12345
  • abczn12345
  • 2009年03月27日 20:50
  • 64

关于jsp中文乱码问题。

很多次写代码都会出现乱码的bug,每次都要不停的尝试,现在把方法一个个记下来,以后着也更方便一些了。jsp页面乱码把头代码改成然后再之间加上或...
  • Vincent_xy
  • Vincent_xy
  • 2015年06月15日 16:32
  • 378

Codeblocks 中文乱码问题原因分析和解决方法!

本文转自:点击打开链接 这里以Code::Blocks 10.5版本为蓝本进行说明。   首先,请在Code::Blocks里面输入标准的一个C程序:   [cpp] v...
  • zhuyucheng123
  • zhuyucheng123
  • 2012年07月11日 21:33
  • 1555

项目____JSP中文乱码问题总结

最基本的乱码问题 这个乱码问题是最简单的乱码问题。一般新会出现。就是页面编码不一致导致的乱码。 %@ page language="java" pageEncoding="UTF-...
  • u010241120
  • u010241120
  • 2015年10月19日 15:46
  • 565

JSP几种常见中文乱码解决方案

1.JSP文件中文内容显示乱码 通过浏览器调用JSP页面,在客户端浏览器中所有的中文内容出现乱码  解决方案:替换ISO-8859-1,修改页面编码为UTF-8 或者其他中文字符集...
  • zxjcarrot
  • zxjcarrot
  • 2013年05月21日 23:01
  • 545

Tomcat 中 jsp 中文乱码显示处理解决方案

JSP 中文乱码处理解决方案   初学JSP,尤其是Tomcat环境(GlassFish默认UTF-8,则不存在此类问题),经常会因为中文汉字字符集设置问题导致中文乱码,本文就这一问题提出解决方案,解...
  • joyous
  • joyous
  • 2007年02月07日 14:20
  • 11894

HTML跳转jsp页面,中文乱码处理

原来这两种处理中文乱码的方法不一样的啊,到今天才知道,多亏高手指点
  • java_yinxuan
  • java_yinxuan
  • 2014年08月08日 16:46
  • 242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于jsp乱码问题
举报原因:
原因补充:

(最多只允许输入30个字)