CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

星期一再做不好就要被人炒了...救救啊..分数全给了

楼主crazyhardy(難得想)2006-04-01 08:37:44 在 Java / Web 开发 提问

这次我写了过滤码,,但是还是在存入mysql数据库时是乱码  
  过滤器源码是:  
  package   TR;  
  import   javax.servlet.*;  
  import   javax.servlet.http.HttpServlet;  
  import   java.io.IOException;  
   
  /**  
    *  
    *   Date:   2005-9-19  
    *   Time:   17:33:36  
    *     @author   Duzk  
    */  
  public   class   MyFilter   extends   HttpServlet   implements   Filter   {  
          private   FilterConfig   filterConfig;  
          //Handle   the   passed-in   FilterConfig  
          public   void   init(FilterConfig   filterConfig)   throws   ServletException   {  
                  this.filterConfig   =   filterConfig;  
          }  
   
          //Process   the   request/response   pair  
          public   void   doFilter(ServletRequest   request,   ServletResponse   response,  
                                                    FilterChain   filterChain)   {  
   
                  try   {  
                          request.setCharacterEncoding("GBK");  
                          filterChain.doFilter(request,   response);  
   
                  }   catch   (ServletException   sx)   {  
                          filterConfig.getServletContext().log(sx.getMessage());  
                  }   catch   (IOException   iox)   {  
                          filterConfig.getServletContext().log(iox.getMessage());  
                  }  
          }  
   
          //Clean   up   resources  
          public   void   destroy()   {  
          }  
  }  
   
  然后在web.xml里加上这段  
  <filter>  
          <filter-name>MyFilter</filter-name>  
          <filter-class>TR.MyFilter</filter-class>  
  </filter>  
  <filter-mapping>  
          <filter-name>MyFilter</filter-name>  
          <url-pattern>/*</url-pattern>  
  </filter-mapping>  
   
  而我用来测试的jsp源码为  
  <%@   page   language="java"   contentType="text/html;   charset=GBK"%>  
  <%@   page   import="java.sql.*"   %>  
  <html>  
  <meta   http-equiv="Content-Type"   content="text/html;charset=GBK">  
  <body>  
   
  <form   name="form1"   method="post"   action="">  
  <%  
    Connection   conn=null;  
    Statement   sql=null;  
    ResultSet   rs=null;  
    request.setCharacterEncoding("GBK");  
   
  //   String   abc   =   new   String(request.getParameter("textfield").getBytes("ISO-8859-1"));  
   
   
  String   name   =   request.getParameter("textfield");  
  //name=new   String(name.getBytes("ISO-8859-1"),   "bg2312");  
   
  out.println(name);  
  try  
  {  
  Class.forName("com.mysql.jdbc.Driver").newInstance();  
  }  
  catch   (ClassNotFoundException   e){}  
  try  
  {  
  String   url="jdbc:mysql://localhost:3306/english"   ;  
   
  conn=DriverManager.getConnection(url,"root","123456");  
   
         
  sql=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    
   
  rs=sql.executeQuery("Select   *   from   text");  
   
  sql.executeUpdate("insert   into   text   values"+"("+"'"+name+"')");  
  }  
  catch   (Exception   e)   {}  
   
   
  %>  
      <label>  
      <input   type="text"   name="textfield">  
      </label>  
      <label>  
      <input   type="submit"   name="Submit"   value="提交">  
      </label>  
       
           
       
  </form>  
  </body>  
  </html>  
  但还是不行??请救救,,应该如何改啊? 问题点数:40、回复次数:15Top

1 楼huataixiang19810225(无名)回复于 2006-04-01 10:06:16 得分 0

google上一大堆  
  设置你的mysql的编码方式为utf8Top

2 楼Fifotom()回复于 2006-04-01 10:11:59 得分 0

如果说页面执行正常只有MySQL数据库中显示乱码的话,那么在MySQLCC等查看工具中设置一下就可以了,好像是某一地方可以改变数据的现实编码的。Top

3 楼zx2002027(http://www.netyi.net/in.asp?id=zx2002027)回复于 2006-04-01 10:29:24 得分 0

MYSQL不熟,帮顶Top

4 楼chenlx01(Coder)回复于 2006-04-01 10:36:05 得分 0

你mysql建表的时候,有没有设置字符编码?  
  CREATE   TABLE   xx`   (...   )   ENGINE=MyISAM   DEFAULT   CHARSET=gbk;  
   
  String   url="jdbc:mysql://localhost:3306/english"   ;  
  改为String   url="jdbc:mysql://localhost:3306/english?useUnicode=TRUE&amp;characterEncoding=GBK";Top

5 楼ohbug(臭虫)回复于 2006-04-01 10:58:15 得分 0

在MySQL的my.ini文件中设置编码,不然行不通的。  
   
  加上  
  --default-characte-set=gbk  
  然后向数据库写数据的时候,用GBK转换一下字符串,如果不设置数据库的编码格式,很多时候都不能成功。Top

6 楼crazyhardy(難得想)回复于 2006-04-01 11:53:56 得分 0

这乱码真是很么难解决吗??我试过以上几种方法,,chenlx01(Coder)   的,ohbug(臭虫)的也试过,,也是不行,,真是晕C。。。Top

7 楼tangcx(因为帅所以爱)回复于 2006-04-01 11:58:23 得分 0

<%!  
        String   tran(String   tem)    
            {  
      String   str=null;  
        try  
          {  
             
            byte   b[]=tem.getBytes("ISO-8859-1");  
            str=new   String(b);  
    }  
            catch(Exception   e){}  
        return   str;  
    }  
   
  %>  
  我在SQL中是用这个函数来过虑的..Top

8 楼tangcx(因为帅所以爱)回复于 2006-04-01 12:03:22 得分 0

补充一下.  
  String   name   =   request.getParameter("textfield");  
  if(name!=null)  
      name=tran(name);  
  else  
      name="";  
  Top

9 楼xiangbo520(充栋汗牛)回复于 2006-04-02 09:28:46 得分 0

过滤器对数据库操作是无效的,它只能对进站请求进行控制。  
  你应该设置数据库的默认编码。Top

10 楼xiangbo520(充栋汗牛)回复于 2006-04-02 09:33:56 得分 0

告诉你我的办法:  
  设置数据库编码为GBK或者gb2312  
  设置GET方式传递参数编码为GBK或者gb2312,在serverl.xml中你的服务中设置URIEncoding="GBK"  
  设置POST方式传递参数编码为GBK或者gb2312,在页面或者过滤器中设置request.setCharacterEncoding("GBK");  
  这样以后中文就随我怎么用了,再也没有讨厌的中文问题了。Top

11 楼crazyhardy(難得想)回复于 2006-04-02 20:51:40 得分 0

我机器是繁体机,公司的机器,,帮它写一个留言板,,其它部分都做好了,,就差乱码问题??tomcat是5.5   会不会是tomcat问题??(听讲装4.1会没事)   想让它们可以输入简体中文,繁体中文,和英文,,现在就简体繁体也做不到,,是不是都将它们设置为gbk??可以兼容的??  
  xiangbo520(充栋汗牛)的方法我明天试试,,行了就立刻结贴,,再次谢谢大家的讨论,,可以的话再提供点好些的方法..谢谢大家了..Top

12 楼cqyysy(爱睡觉的tomcat)回复于 2006-04-02 21:16:41 得分 0

LZ发给我吧,曾经我遇到过折中问题  
  sheyin@126.comTop

13 楼sheep219(sheep219)回复于 2006-04-02 22:02:33 得分 0

我也碰到过了,主要是数据库的编码问题,你可以重新configration配置编码格式,它默认的是latin你改成GBK要是你要繁体的话。然后页面端提交或显示也用charset   GBK还有你要是用servlet或者struts做系统的话可以写过滤器,把编码格式转换成GBK那样就万事OK了Top

14 楼crazyhardy(難得想)回复于 2006-04-03 19:28:24 得分 0

TO:sheep219(sheep219  
  我想问一下configration这个怎么配置呢??可以祥细一点说呢??谢谢   了..Top

15 楼crazyhardy(難得想)回复于 2006-04-05 15:00:34 得分 0

??Top

相关问题

关键词

得分解答快速导航

  • 帖主:crazyhardy

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo