解决方法一:
mysql安装时候的编码
看下myini有无
[mysql]
defaultcharacterset=utf
[client]
defaultcharacterset=utf
[mysqld]
defaultcharacterset=utf创建表的时候设置
DROP TABLE IF EXISTS `Company`;
CREATE TABLE IF NOT EXISTS `Company`
(
`Cname` VARCHAR() NOT NULL
`Caddr` VARCHAR()
`Ctel` VARCHAR()
)ENGINE=InnoDB DEFAULT CHARSET=UTF; jsp标头
<%@ page language="java" import="javautil*" pageEncoding="UTF"%>不行的话就尝试
contentType="text/html;charset=gb" 解决方法二
连接mysql时(无论在从mysql读还是取数据的情况)指定使用的编码方式为utf具体代码如下
//装载mysqljdbc驱动
ClassforName("commysqljdbcDriver")newInstance();
//连接数据库
Connection sqlCon = DriverManagergetConnection( "jdbc:mysql://localhost:/test?user=root&password=&useUnicode=true&characterEncoding=utf" ); 解决方法三
如果方法一不行那么在方法一的基础上对读入的字符串进行强制编码方式转换
String name = requestgetParameter("name");
name= new String(namegetBytes("ISO")"utf"); 或者
String name =new String( rstgetString("name")getBytes("ISO")"utf"));解决方法四
这个方法在有些文章里是首推的我首先也是试了这个方法但是好像不行这里还是说一下不知是不是我操作错误还是先贴原文吧
"如果数据库中有中文的话而mysql默认的语言不是中文时要在配置文件C:winntmyini 中的 [mysqld] 里添加一行
defaultcharacterset=utf
然后重起mysql
方法五在tomca或者web项目下的webxml里面更改
<filter>
<filtername>UTFEncoding</filtername>
<filterclass>comfounderchenphUtilEncodingFilter_UTF
</filterclass>
<initparam>
<paramname>encoding</paramname>
<paramvalue>UTF</paramvalue>
</initparam>
</filter>
<filtermapping>
<filtername>UTFEncoding</filtername>
<urlpattern>*jsp</urlpattern>
</filtermapping>
<filtermapping>
<filtername>UTFEncoding</filtername>
<urlpattern>*do</urlpattern>
</filtermapping>