解决struts中使用mysql遇到的中文问题
时间:2007-05-26 来源:flyrambler
解决struts中使用mysql遇到的中文问题
这两天在做struts+hibernate,调试时一般都用的英文或数字,所以一直没发现这个中文问题,今天在试中文的时候,发现显示列表中全部为乱码,我试着将jdbc:mysql://localhost:3308/test改为: jdbc:mysql://localhost:3308/test?useUnicode=true&characterEncoding=utf8,因为uft8对中文支持较好,所以我整个项目都采用utf8编码,然后再试,还一样的情况...
我跟踪调试,发现在action中接收时就为乱码,如果我加上下面的语句:
程序代码
String objname="";
try{
byte[] obj=addNewObjForm.getObjName().getBytes("ISO-8859-1");
objname=new String(obj,"UTF-8");
}catch(Exception e)
{
System.out.println(e.getMessage());
}
Ok了,在以前的文章里,我也已经提到了传递中文参数的问题,只要找一下"中文问题"标签就ok了~...
我接着试着将?useUnicode=true&characterEncoding=utf8去掉,依然正常,我估计跟在安装mysql时的配置也有点关系,我们安装前或安装后,都可以通过向导配置mysql的字符集,我将它也配置成uft8,如果求保险的话,加上上面的也就更有保证了~
注意,在普通jsp页面中通过form的action和post,一般不会产生中文乱码问题,一般可以直接获取使用~
这两天在做struts+hibernate,调试时一般都用的英文或数字,所以一直没发现这个中文问题,今天在试中文的时候,发现显示列表中全部为乱码,我试着将jdbc:mysql://localhost:3308/test改为: jdbc:mysql://localhost:3308/test?useUnicode=true&characterEncoding=utf8,因为uft8对中文支持较好,所以我整个项目都采用utf8编码,然后再试,还一样的情况...
我跟踪调试,发现在action中接收时就为乱码,如果我加上下面的语句:
程序代码
String objname="";
try{
byte[] obj=addNewObjForm.getObjName().getBytes("ISO-8859-1");
objname=new String(obj,"UTF-8");
}catch(Exception e)
{
System.out.println(e.getMessage());
}
Ok了,在以前的文章里,我也已经提到了传递中文参数的问题,只要找一下"中文问题"标签就ok了~...
我接着试着将?useUnicode=true&characterEncoding=utf8去掉,依然正常,我估计跟在安装mysql时的配置也有点关系,我们安装前或安装后,都可以通过向导配置mysql的字符集,我将它也配置成uft8,如果求保险的话,加上上面的也就更有保证了~
注意,在普通jsp页面中通过form的action和post,一般不会产生中文乱码问题,一般可以直接获取使用~
相关阅读 更多 +