回 帖 发 新 帖 刷新版面

主题:显示乱码!!!

利用javabean从数据库中读出数据后,我已用
       public String to_String( String str) {
                try
                {
                        return new String(str.getBytes("ISO 8859-1"));
                }
                catch (Exception e)
                {
                        return str;
                }
        }
对其进行了编码,但显示仍然是乱码,请问还需在哪对其进行编码啊??

回复列表 (共9个回复)

沙发

ISO 8859-1 把它改成gb2312试一下呢~!!!!

板凳

先看看存在数据库中的是不是乱码.如果是,就在存数据前进行编码转换.

3 楼

存在数据库的正常,而且我用那个编码往数据库中添加数据库一切正常,就是读出数据不行

用gb2312我也试了,都一个样!!!

4 楼

你们一般用什么转换呢??
有什么好的转换代码吗??

5 楼

代码是不是应该这样:

public String to_String( String str) {
                try
                {
                  str =new String(str.getBytes("GB2312"),"ISO-8859-1");
                }
                catch (Exception e)
                {
                        return str;
                }
        }

6 楼

<%@ page contentType="text/html;charset=GB2312" %>

先告诉浏览器使用gb2312.

jdbc-0.proxool.driver-url=jdbc:mysql://127.0.0.1/bbs1?useUnicode=true&characterEncoding=gb2312
连接使用gb2312编码.

直接从数据库中读取就可以了,省了编码转换.

7 楼

你大概用的是tomcat吧
似乎你试过的方法都不可以 ,ISO 8859-1与gb2312的转换后,还要用到一个“过滤器”才能对中文正常操作。(目前我还没拿到“过滤器”)
另外你可以用存储过程来解决这个问题  我目前就是用存储过程来解决的

8 楼

多谢大家帮忙了

9 楼

其实你检查一下要显示数据的JSP页面是不是写上
<%@page contentType="text/html;charset=gb2312"%>

如果写了,从数据库拿出来的值,比如
String aa = rs.getString(1);
把aa进行转换,不用非要把那个方法写的JAVABEAN里
aa = new String(aa.getBytes("ISO8859-1"));

我来回复

您尚未登录,请登录后再回复。点此登录或注册