插之前在页面中我OUT了一下变量.是中文的字符串.
插了之后.我直接去看数据库.全变成了????

解决方案 »

  1.   

    在存入数据库前做下转换。
    temp=net String(strTemp.getByte(ISO8859-1),"gb2312");
    得到的就是正确的。然后在存到数据库里。
      

  2.   

    不用这么麻烦,首先查查你的linux是不是lang=en_US,如果是,改成lang=zh_CN.GB2312,大功告成
      

  3.   

    public static final String dburl = "jdbc:mysql://localhost/bitc?useUnicode=true&characterEncoding=gb2312&user=root&password=1";
    连接~~然后什么也不转化~叶面用~~~charset=GB2312
      

  4.   

    运行环境不同造成的。
    我以前做过struts架构(jsp-action-actionform-db)的工程也出现类似现象,是在wsad4.0(IBM)做的,没有乱码,打包成XXX.war之后放到tomact下运行输入中文,写到数据库时是乱码,在actionform得到数据已经是乱码了,后来我们使用编码转化ISOTOGBK写到数据库中,在使用GBKTOISO读出没有乱码,但在放到wsad4.0运行又有乱码了。
    主要原因运行环境不同,struts包在读取传输数据是使用UTF-8格式进行的,wsad4.0内置服务运行环境是使用操作系统编码格式进行读取传输的;所以会出现这种情况。那你最好统一使用UTF-8格式,在输入和显示的jsp页面设置UTF-8格式,你的数据库也用UTF-8格式创建,不管输入什么语言符号都不会出现乱码。
      

  5.   

    我的数据库是oracle的,刚开始也有你这样的问题,我用了下面的方法就解决了,把下面的语句放在JSP程序的最上面
    <%
      request.setCharacterEncoding("gb2312");
    %>
      

  6.   

    要进行字符集的转换,肯定是在数据存入之前就已经是乱码了,转换一下就可以了。temp=net String(strTemp.getByte(ISO8859-1),"gb2312");
    或者temp=net String(strTemp.getByte(gb2312),"ISO8859-1");
      

  7.   

    先转换一下:
    String(strTemp.getByte(ISO8859-1),"gb2312");
      

  8.   

    修改web.xml
    加入
    <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>gb2312</param-value>
    </init-param>
    </filter>