在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里面很多的!
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里面很多的!
但不知道,为什么执行后到MySQL中都成????了。
[mysqld]项里
加入
default-character-set=gbk
试试
写进数据库和读数据,都要转码
str=new String(str.getBytes("ISO8859-1"),"GB2312");
str是读出来得String变量
如:
jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=GB2312
jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=GB2312