数据库中“name”列中已经有有中文的记录了,可是在浏览器页面的“用户名”中输入对应的名字,就是查询不到与之对应的数据库中的记录(也就是登陆失败),“用户名”是英文字母的话就没有任何问题,我估计这是“字符编码”的原因,可是不知道具体是怎么回事,我的JSP什么的都是GB2312编码呀,可是为什么总是出错呢?大家给看看好吗?Oracle9i中的编码是什么呢?用不用把查询到的记录的编码转换成GB2312之后在显示出来呢?我的一个JSP文件的内容,大家看看,帮帮忙分析一下好吗,我也知道快过年了,大家也忙,小弟谢谢了!!!××××××   Login.jsp ××××××<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@page contentType="text/html;charset=GB2312" %>
<center>
<h2>用户登录</h2>
<html:form method="post" action="/project/login.do">
用户名:<input type="text" name="userName"><br>
密&nbsp;&nbsp;码:<input type="password" name="password"><br>
<input type="submit" value="登陆" >
</html:form>
</center>××××××   Productlist.jsp ××××××<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0036)http://localhost:8080/cart/index.jsp -->
<HTML><HEAD><TITLE>index</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1505" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<H1 align=center>本系统的所有商品列表如下: <BR><BR>
                  ……
                  ……
                  ……
                  ……

解决方案 »

  1.   

    action里打印出用户名看看有没有乱码
      

  2.   

    当我向数据库中存入中文编码的记录时是正常的,而且我把我用的Eclipse的字符编码已经设置成了GB2312了,在Eclipse中调试检查程序的时候,从数据库中查询出来的记录也可以正常的显示,可是就是不知道为什么在页面中却不能正常显示
      

  3.   

    在hibernate设置文件中需要加入如下设置才可以正确处理中文
    <property name="hibernate.query.factory_class">
    org.hibernate.hql.classic.ClassicQueryTranslatorFactory
    </property>