jspSmartUpload组件中文乱码
发表在JavaWeb图书答疑 2009-07-19
是否精华
版块置顶:
    本人购买贵公司出版的《JSP数据库系统开发案例精选》这本书,并把该书的第二个案例:《企业门户网站》部署好后,遇到了一个中文乱码问题,非常需要你们的帮助。
    该案例在上传软件的时候,使用了jspSsmartUpload组件,提交表单的参数保存到数据库时,使用的是jspSmartUpload组件自带的请求Request,该请求保存到数据库的中文数据都是问号(?????),我在Mysql数据库中查询过,看到里面是????。
     但是其他的表单参数保存到数据库时都是使用的JSP页面内置的HttpSerlvetRequest request 请求,这样保存中文数据都很正常,我在数据库查询看到的是中文。
    并且这个案例中,凡是使用jspSmartUpload组件自带的请求Request保存中文都是???。使用JSP页面内置的HttpSerlvetRequest 请求都能正常保存中文。真诚希望你们的帮助。谢谢!
    附带说明;jspSmartUpload组件不支持上传的中文文件名,这是能理解的,这是该组件本身的问题,但是现在它也不能保存表单中的中文参数,我想应该是代码的问题。
分享到:
精彩评论 5
dianli_hui
学分:0 LV1
2009-07-20
沙发
    该问题已经基本确定下来了,你们提供的编译好的.class文件(WEB-INF/com),不会出现乱码,但是我把你们提供的源代码导入eclipse后,再替换掉原有的.class文件就出现了就出现上面所说的乱码。至于到底是哪出了问题我还没有找出来。
无语_mrkj
学分:3155 LV11
2009-07-21
板凳
请问您是否修改过数据库的编码。这个程序采用的是latin1。
dianli_hui
学分:0 LV1
2009-07-22
地板
该问题已经解决了。你们提供的源代码不是最后调试好的源代码,那个源代码少了一行代码。我把你们编译的ParamUtils.class文件进行反编译后,进行了对比,发现了问题,最后解决了。
源代码:src/com/bwm/core/ParamUtils.java为:
    public static String getRequestString(HttpServletRequest request,String s){
        s=nullToString(s).trim();
        s=ParamUtils.getEscapeHTMLParameter(request, s);
        //小王转码
     //   s=StringUtils.toChinese(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.StringtoSql(s);
        return s;
    }
把ParamUtils.class进行反编译后的代码为:
  public static String getRequestString(HttpServletRequest request, String s) {
    s = nullToString(s).trim();
    s = 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 = getEscapeHTMLParameter(request, s);

    s = StringUtils.toUnicode(s);
    s = StringUtils.StringtoSql(s);

    return s;
  }

希望你们在以后的出版物中能根正这个疏忽,免得后人浪费时间。
最后再次感谢你们明日科技提供的这个项目案例,为我进行二次开发带来了很大的方便。
dianli_hui
学分:0 LV1
2009-07-22
4L
我刚才又看了光盘里面的源代码,发现光盘里面的源代码还是正确的,可能是我自己不小心该动了源代码,导致了现在的麻烦,也浪费了你们的时间。真得不好意思。
无语_mrkj
学分:3155 LV11
2009-07-23
5L
没关系,结贴!
首页上一页 1 下一页尾页 5 条记录 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经营性网站备案信息 营业执照