在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下: 
public class Convert { 
/** 把ISO-8859-1码转换成GB2312 
*/ 
public static String ISOtoGB(String iso){ 
String gb; 
try{ 
if(iso.equals("") || iso == null){ 
return ""; 

else{ 
iso = iso.trim(); 
gb = new String(iso.getBytes("ISO-8859-1"),"GB2312"); 
return gb; 


catch(Exception e){ 
System.err.print("编码转换错误:"+e.getMessage()); 
return ""; 



建议先搜索一下,这类帖子在faq里面很多的!

解决方案 »

  1.   

    另外,你看看你的数据库中是否有中文,如果跟本就显示不了中文,那可能是那数据库的默认字符的问题,可以通过alter database db_name default character set charset; 来改变数据库的默认字符
      

  2.   

    打错几个字,不好意思
    但不知道,为什么执行后到MySQL中都成????了。
      

  3.   

    在配置文件中的
    [mysqld]项里
    加入
    default-character-set=gbk
      

  4.   

    "对于varchar类型把它设为binary属性就可以解决中文问题"----这种解决方法在模糊查询的时候会出现问题。最简单的办法是使用过滤器。
      

  5.   

    强烈建设兴建数据库的时候采用UTF-8的国际编码
      

  6.   

    jdbc:mysql://...:...&useUnicode=true&chractorEncodeing=gb2312
    试试
      

  7.   

    我在sql server上试过,解决乱码问题,你试试:
    写进数据库和读数据,都要转码 
    str=new String(str.getBytes("ISO8859-1"),"GB2312");
    str是读出来得String变量
      

  8.   

    前段日子,受朋友之托,解决此类问题,总结了一些方法:1 操作系统默认字符集为西欧字符(尤其是Linux,很常见),修改为GBK之类2 数据库默认字符集(Mysql, PostgreSQL等),修改为UTF-83 在网页提交前,对POST Form数据做一层过滤,利用Filter Servlet也就是过滤器,进行编码转换
      

  9.   

    我也遇到过你的问题,在url后面加上useUnicode=true&characterEncoding=GB2312就可以了
    如:
    jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=GB2312
      

  10.   

    插入的时候把8859_1的编码转换成GBK,然后再插入到MySQL
      

  11.   

    用4。0吧,
    jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=GB2312