utf-8统一字符问题?

我的服务器Jboss,数据库mysql5.0,为了统一编码格式我在jsp页面统一了使用了contentType="text/html;charset=UTF-8";对于传递我也在web.xml进行了过滤采用了utf-8,javabean也采用utf-8格式,对于数据库同样采用utf-8建立的表格
CREATE TABLE t(
abc varchar(10) NOT NULL , ) TYPE=HEAP , DEFAULT CHARACTER SET UTF8 ;
而且在配制mysql连接池的时候进行了统一:<connection-url>jdbc:mysql://127.0.0.1:3306/ntsky?useUnicode=true&characterEncoding=utf-8</connection-url>
可是还是有中文问题,但同样操作移植到weblogic下就没问题,banq,请帮我解决下,还有我看了您的那个教程,你的页面也是utf-8处理的,但不知道你在和数据库方面怎么处理。

先要确定哪一步出错了阿,是访问数据库的问题,还是jsp的问题

按照和weblogic的比较,入库的时候是没问题的,能添加进和weblogic一样的字符,可是读取出来的时候同样还是一连串的"???",我将他们统一用GBK一样没问题.哎,郁闷~~~

我是在JBoss 3.0 /jBoss 3.2 + MySQL 4.0 平台下,没有问题。

我发现你使用的是mySQl 5.0,不知你的MySQL JDBC驱动是否和mySQL 5.0搭配很好?或者jdbc:mysql://127.0.0.1:3306/ntsky?useUnicode=true&characterEncoding=utf-8语法适合MySQL 5.0否?

在我的书中,我建议统一成统一字符集,GBK.ISO8859或UTF-8,当然UTF-8最好,可以跨平台,但是Java平台和操作系统衔接点太多,一点没有处理到,就会乱码,所以如果你运行的是中文Winodows,自对Java各个环节无法搞定,就使用GBK反而省心。

非常感谢banq能回答,我用的是英文windows xp环境,不是mysql 5.0的错误,因为我在weblogic测试mysql 5.0是支持那样写的.而且一点问题都没有。

搞了几天终于知道了原因,原来是mysql驱动程序的问题,
1,用mysql2.0.14驱动程序
对于mysql5.0以前版本的mysql在数据库中不要加上
DEFAULT CHARACTER SET UTF8 ;会出先乱码
2,用3.0新的驱动,以及mysql5.0的话,不加就插入不进数据,加上就能全部实现utf8统一编码

多谢skyyjl 探索,并且将解决办法公布,帮助更多道友。好,顶。


skyyjl,能不能将你的这次解决方案具体的写一个出来哈。

如果:对于传递我也在web.xml进行了过滤采用了utf-8,这是怎么实现的。

但是我看好多的书上都是用的gb2312? GBK和gb2312 差别在什么地方呢?

1,用mysql2.0.14驱动程序
对于mysql5.0以前版本的mysql在数据库中不要加上
DEFAULT CHARACTER SET UTF8 ;会出先乱码
2,用3.0新的驱动,以及mysql5.0的话,不加就插入不进数据,加上就能全部实现utf8统一编码
说的不正确。

确实是驱动的问题,但是解决方法没你说的那么简单。

banq说的对,我原先写的连接格式是jdbc:mysql://127.0.0.1:3306/forum?&characterEncoding=utf-8,老出现乱码,改成jdbc:mysql://127.0.0.1:3306/forum?useUnicode=true&characterEncoding=utf-8,正常显示汉字,但在dos下查看mysql4.0数据表时,显示乱码,我用alter table topic character
set utf8 命令提示query ok,但插入的数据还是乱码,我用mysql-front查看表的字符格式是chinese格式,在字符集里没有utf-8编码格式,请那位大哥帮帮忙

我在jboss下对mysql连接配制为:jdbc:mysql://127.0.0.1:3306/forum?useUnicode=true&;characterEncoding=utf-8后,以前插入的数据中文在浏览器里显示正常,后插入的数据显示乱码,我估计是在数据插入时有编码格式不统一的地方,我的jbuilder的字符格式是default,是不在影响