回 帖 发 新 帖 刷新版面

主题:救急!关于MySql和JSP的中文问题。

我的开发环境是
MyEclipse 5.0GA
JDK 6.0
MySql 5.0 

安装MYSQL的时候向导里选择的是UTF-8的编码。

在mysql cmd下面status之后显示的是
Connection id: 583
Current database:
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.18-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 9 hours 16 min 24 sec 



所有JSP页面中均加入了
<%request.setCharacterEncoding("UTF-8");%>
<%response.setContentType("text/html;charset=utf-8"); %> 
<meta http-equiv=content-type content="text/html; charset=utf-8">

在servlet中也写有
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");

JDBC的连接为:jdbc:mysql://localhost/webapp_backstage?user=root&password=root&useunicode=true&characterencoding=utf-8

然后在实际调试过程中,页面显示正常,但是在用SQL语句查询中文的时候,查不到对应的数据。
在Mysql中,SQLyog中文均显示为乱码,cmd下中文显示为??。
小弟愚钝,baidu google了很久也没找到解决方法。
不是说MYSQL 4.0+之后就支持中文编码了么?
怎么还是会出现这种问题呢?
我现在的想法是,是不是浏览器在from提交的时候提交的不是UTF8,mysql接收到存在数据库里,查询的时候用UTF8查询数据库就查询不到。
不解中。。。特来求教。

回复列表 (共2个回复)

沙发

将字体改为gb2312,试试看

板凳


你在JSP里用GB2312
我再给你个转码的类,每次从数据库中提取中文就用这个类转下码,向数据库里存就不用了..我都是这样用的
 public String change(String str) {

        try {
            str = new String(str.getBytes("ISO-8859-1"), "GBK");
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }

        return str;
    }

我来回复

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