jsp开发手册门户网站问题 求求各位高手了
发表在JavaWeb图书答疑 2008-11-19
是否精华
版块置顶:
求求各位高手了
这个程序必须把总数据库字符集改成utf8或latin1.单改里面的单个数据库字符集utf8或latin1插入中文

乱码
但我买了个jsp空间学习用,人家都是gbk编码.不能为我一个人改啊
我都急疯了,我把程序读了3边也没看出马病.
是不是这里啊?
//对输入的字符串进行一次编码转换,防止SQL注入
    public static String StringtoSql(String str) {
        str = nullToString(str, "");
        try {
            str = str.trim().replace('\'', (char) 1);
        } catch (Exception e) {
            return "";
        }
        return str;
    }

//对字符串进行二次编码转换,防止出库时异常
    public static String SqltoString(String str) {
        str = nullToString(str, "");
        try {
            str = str.replace( (char) 1, '\'').trim();
        } catch (Exception e) {
            return "";
        }
        return str;
    }

//对字符串进行Unicode编码
    public static String toUnicode(String strvalue) {
        try {
            if (strvalue == null) {
                return null;
            } else {
                strvalue = new String(strvalue.getBytes("GBK"), "ISO8859_1");
                return strvalue;
            }
        } catch (Exception e) {
            return "";
        }
    }

//对字符串进行Unicode编码
    public static String toUnicode(String strvalue) {
        try {
            if (strvalue == null) {
                return null;
            } else {
                strvalue = new String(strvalue.getBytes("GBK"), "ISO8859_1");
                return strvalue;
            }
        } catch (Exception e) {
            return "";
        }
    }
/修改使用的方法
    public static String getRequestString(HttpServletRequest request,String s){
        s=nullToString(s).trim();
        s=ParamUtils.getEscapeHTMLParameter(request, s);
        s=StringUtils.toChinese(s);
        s=StringUtils.toUnicode(s);
        s=StringUtils.StringtoSql(s);
        return s;
    }
//添加使用的方法
    public static String getRequestString(Request request, String s) {
        s=nullToString(s).trim();
        s=ParamUtils.getEscapeHTMLParameter(request, s);
       // s=StringUtils.toChinese(s);
        s=StringUtils.toUnicode(s);
        s=StringUtils.StringtoSql(s);
        return s;
    }

    public static String getSqlString(String s){
        s=StringUtils.SqltoString(s);
        s=StringUtils.toChinese(s);
        s=nullToString(s).trim();
        return s;
    }
    public static int getIntParameter(Request request, String s) {
        int defaultNum=0;
        String temp = request.getParameter(s);
        if (temp != null && !temp.equals("")) {
            int num = defaultNum;
            try {
                num = Integer.parseInt(temp);
            } catch (Exception ignored) {}
            return num;
        } else {
            return defaultNum;
        }
    }
}
或者是不是在建数据库时默认的数据库是latin1,在上面就直接创建了!
导致非要改成latin1或utf8才不出乱码!
我求求大家了帮帮忙吧! 偶再这里谢谢大家了!!!
分享到:
精彩评论 2
hot66hot
学分:0 LV1
2008-11-24
沙发
Filter代码
package ****;

import java.io.IOException;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;

public class SetCharacterEncodingFilter extends HttpServlet implements Filter {
  private FilterConfig filterConfig;
  private String encoding = null;
  //Handle the passed-in FilterConfig
  public void init(FilterConfig filterConfig) {
    this.filterConfig = filterConfig;
    encoding = filterConfig.getInitParameter("encoding");
  }

  //Process the request/response pair
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
    try {
      request.setCharacterEncoding(encoding);
      filterChain.doFilter(request, response);
      //System.out.println("in servletfilter###################"+response.getCharacterEncoding());
    }
    catch (ServletException sx) {
      filterConfig.getServletContext().log(sx.getMessage());
    }
    catch (IOException iox) {
      filterConfig.getServletContext().log(iox.getMessage());
    }
  }

  //Clean up resources
  public void destroy() {
  }
}
web全局部署
<filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>****(包名).SetCharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>GBK</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
放到<web-app>之间!!!
这样就可以
再有问题加我qq:317313070
小小邪
学分:0 LV1
2009-02-27
板凳
结帖
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照