java

位置:IT落伍者 >> java >> 浏览文章

java连接mysql数据库乱码的解决方案


发布日期:2019年08月21日
 
java连接mysql数据库乱码的解决方案

解决方法一:

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>

               

上一篇:jsp Servlet如何处理表单数据

下一篇:Java静态与动态数组特点分析