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

java连接mysql数据库乱码的解决方案,第1张

解决方法一:

mysql安装时候的编码

看下my ini 有无

[mysql]

default character set=utf

[client] default character set=utf

[mysqld] default character set=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="java util *" pageEncoding="UTF "%>不行的话就尝试

contentType="text/charset=gb " 解决方法二

连接mysql时(无论在从mysql读还是取数据的情况) 指定使用的编码方式为utf 具体代码如下

//装载mysql jdbc驱动

Class forName(" mysql jdbc Driver") newInstance()

//连接数据库

Connection sqlCon = DriverManager getConnection( "jdbc:mysql://localhost: /test?user=root&password= &useUnicode=true&characterEncoding=utf " )解决方法三

如果方法一不行那么在方法一的基础上对读入的字符串进行强制编码方式转换

String name = request getParameter("name")name= new String(name getBytes("ISO ") "utf ")或者

String name =new String( rst getString("name") getBytes("ISO ") "utf "))解决方法四

这个方法在有些文章里是首推的 我首先也是试了这个方法 但是好像不行 这里还是说一下 不知是不是 *** 作错误 还是先贴原文吧

"如果数据库中有中文的话而mysql默认的语言不是中文时要在配置文件C:winntmy ini 中的 [mysqld] 里添加一行

default character set=utf

然后重起mysql

方法五 在tomca或者web项目下的web xml里面更改

<filter>   <filter name>UTFEncoding</filter name>     <filter class>founder chenph Util EncodingFilter_UTF

lishixinzhi/Article/program/Java/JSP/201311/20273

可能原因一:数据库不支持中文,或者是数据库编码格式和java代码编码格式不一致,这种情况需要修改数据库编码格式:

ALTER SYSTEM DISABLE RESTRICTED SESSION改完编码后执行

sql> conn / as sysdba

sql> shutdown immediate

database closed.

database dismounted.

oracle instance shut down.

sql> startup mount

oracle instance started.

total system global area  135337420 bytes

fixed size                          452044 bytes

variable size                     109051904 bytes

database buffers              25165824 bytes

redo buffers                      667648 bytes

database mounted.

sql> alter system enable restricted session

system altered.

sql> alter system set job_queue_processes=0

system altered.

sql> alter system set aq_tm_processes=0

system altered.

sql> alter database open

database altered.

sql> alter database character set internal_use UTF-8

sql> shutdown immediate

sql> startup

可能原因二:java代码生成插入语句的时候,已经发生乱码现象,这种只能是修改项目编码格式或者是在数据获取的时候直接转译代码编码格式来实现了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10085690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存