java项目存储数据到数据库出现中文乱码,解决办法

来源:互联网 发布:nginx header安全配置 编辑:程序博客网 时间:2024/05/21 22:35

在向数据库中存储一条信息的过程中出现了数据库的乱码问题
ssm项目
方法为get类型
一步一步开始排查错误
一开始没多想,想到get类型的方法就直接在后台
String str = new String(request.getParameter(“param”).getBytes(“iso8859-1”),”UTF-8”);
很自信的重启了项目发现并没什么变化
认真一点开始排查
打断点,查看到底是在执行存数据库操作之前就已经乱码了,还是存数据库操作后乱码的。
发现传值并无问题,问题是在存储到数据库的时候发生乱码。
问题找到了开始找解决问题的办法
首先试了更改tomcat的uriEncoding
在pom.xml中

           <plugin>                <groupId>org.apache.tomcat.maven</groupId>                <artifactId>tomcat7-maven-plugin</artifactId>                <configuration>                    <port>8081</port>                    <path>/</path>                    <uriEncoding>UTF-8</uriEncoding>                </configuration>            </plugin>

然而发现还是没有用。
再仔细想了想还有没有疏漏的地方
在配置jdbc数据源的时候加上:
characterEncoding=UTF-8
jdbc.url =jdbc:mysql://127.0.0.1:3306/xxxx?characterEncoding=UTF-8
再次重启项目问题解决。

顺便搜罗了一下此种问题的其他可行解决方案:
在web.xml里面加上:

<filter>   <filter-name>encodingFilter</filter-name>   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>   <async-supported>true</async-supported>   <init-param:>      <param-name>encoding</param-name>      <param-value>UTF-8</param-value>   </init-param></filter><filter-mapping>   <filter-name>encodingFilter</filter-name>   <url-pattern>/*</url-pattern></filter-mapping>

希望可以帮到和我一样情况的~

阅读全文
0 0
原创粉丝点击