解决java向数据库插入数据显示乱码的问题

https://blog.csdn.net/qq_38701905/article/details/80373724
写得很全了,收藏一下
在开发的过程中我们经常能遇到乱码的问题,这个出现这个问题的可能性非常的多,对于开发人员来说乱码的问题又不得不去,本文就着出现乱码的情况对其的解决的方法进行了总结,希望能够对于大家有用。

1、前台乱码的问题

检查前台页面上的charset的字符集是否是utf-8
然后再查看后台项目的编码集是否是一致的
右击项目–>选择Properties–>然后查看一下Text file encoding 下的编码格式是否为utf-8,如果不是就把他改为utf-8即可

2、前台先后台插入数据后台接收到的数据是乱码

第一步:我们可以先查看一下tomcat的conf文件夹下的server.xml文件中的Connector是否是utf-8,如果不是就添加 URIEncoding=“UTF-8”,设置tomcat的编码格式为utf-8
如果tomcat上修改编码格式的方式还不行,那么第二步:我们可以去修改web.xml配置文件,因为前台向后台传输数据都需要经过web.xml配置文件。
具体代码如下:

<servlet>
 <servlet-name>Encodeing</servlet-name>
 <servlet-class>cn.hncu.com.encode.Encodeing</servlet-class>
 <init-param>
 <param-name>charset</param-name>
 <param-value>utf-8</param-value>
 </init-param>
 </servlet>

3、后台向数据库插入数据是乱码

后台向数据库插入的数据是乱码,那么大部分是项目和数据库的编码格式不服,前面已经设置了项目的编码格式为utf-8,那么接下来我们就要检查数据库的编码格式具体步骤如下:
测试一下乱码的问题是否解决,如果还不行则还可以检查数据库的设置,在mysql安装目录的my.ini中应该有如下的配置(没有可以手动添加):

[mysql]
character_set_server=utf8 
init_connect='SET NAMES utf8'

最后还可以试下修改数据库连接,使用以下方式指定编码:

jdbc:mysql://localhost:3306/xxx?useUnicode=true&characterEncoding=utf8

运用这些方法解决了我的传值问题,相信对你也有用。

我的是JNDI设置的时候没有配置
url=“jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8”


作者:你说是风就是风
来源:CSDN

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
插入数据时出现乱码问题,可能有以下几种情况: 1. 数据库编码方式不一致,可能是数据库中表的编码方式与Java程序中的编码方式不一致导致插入数据时出现乱码。可以在创建数据库连接时设置编码方式解决问题,如下: ``` String url = "jdbc:mysql://localhost:3306/example?useUnicode=true&characterEncoding=utf8"; Connection conn = DriverManager.getConnection(url, "root", "password"); ``` 2. 字符串编码方式不一致,可能是Java程序中的字符串编码方式与数据库中表的编码方式不一致导致插入数据时出现乱码。可以使用getBytes()方法将Java字符串转换为数据库表的编码方式的字节数组,再转换为字符串进行插入,如下: ``` String sql = "INSERT INTO table_name (column1, column2) VALUES (?, ?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, new String(value1.getBytes("UTF-8"), "UTF-8")); ps.setString(2, new String(value2.getBytes("UTF-8"), "UTF-8")); ps.executeUpdate(); ``` 注意:在使用PreparedStatement对象时,不需要手动转义SQL语句中的特殊字符,PreparedStatement自动处理,避免SQL注入攻击。 3. 数据库表中字段的编码方式不一致,可能是数据库表中某个字段的编码方式与Java程序中的编码方式不一致导致插入数据时出现乱码。可以在创建表时指定字段的编码方式解决问题,如下: ``` CREATE TABLE table_name ( column1 VARCHAR(20) CHARACTER SET utf8, column2 VARCHAR(20) CHARACTER SET utf8 ); ``` 以上是解决Java插入数据编码乱码问题的方法之一,具体解决方法需要根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值