java 向数据库写入汉字的时候出现乱码

java 向数据库写入汉字的时候出现乱码,第1张

可能原因一:数据库不支持中文,或者是数据库编码格式和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代码生成插入语句的时候,已经发生乱码现象,这种只能是修改项目编码格式或者是在数据获取的时候直接转译代码编码格式来实现了。

如果你是数字或中文,你的数据应该是字符串形式的,用单引号括起来就行了。如:

s.executeUpdate("insert into StudentCoure values('"+Sno+"','"+Sname+"','"+Cno+"','"+Cname+"','"+Tno+"','"+Tname+"','"+Scoure+"')")

这样你试试,如果还是不行你将sql打印出来拿到数据库中去执行下,看提示什么错误在补充。希望我的回答对你有所帮助。

两种方法:1、打开mysql目录下的my.ini或my.cnf(Linux下),找到default-character-set这一项,(在[mysql]后),改成default-character-set=gbk。这种方法一劳永逸,效果不错。2、在将数据写入数据库之前,将所有包含中文的字符串进行字符转换成ISO或UTF8(看你的mysql使用的是什么字符集了);在将含有中文的字符串从数据库里读出来后在用程序转换成GBK或GB2312。这种方法比较麻烦,每次写入和读出中文之前都必须调用这两个方法。推荐第一种方法。


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

原文地址: http://outofmemory.cn/bake/11803848.html

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

发表评论

登录后才能评论

评论列表(0条)

保存