springmvc+hibernate+mysql save数据到数据库乱码
程序员文章站
2022-05-21 10:26:02
...
出现乱码的原因很多,有可能是在前台传输到后台出现乱码,也有可能是再保存到数据库中为乱码,下面说一下一般出现乱码要考虑因素,
第一,查看数据库的字符集和项目的编码方式是否一致,不一致请统一.
以我这次的问题为例:
mysql数据库的字符集
项目设置的编码方式:
项目web.xml配置的编码:
第二,在spring配置文件中配置方言,org.hibernate.dialect.MySQLDialect
第三,jdbc数据库连接字符串是否设置了编码,我是在jdbc.properties文件配置的
第四,使用spring注解,@ResponseBody乱码
需要配置:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value> application/json;charset=UTF-8 </value> <value> application/x-www-form-urlencoded;charset=UTF-8 </value> </list> </property> </bean> </list> </property> </bean>
目前想到的就是这些,欢迎留言补充其它原因.
再做个补充,
使用spring @ResponseBody 注解时候,如果返回一个结果字符串有时候在页面上也会出现乱码情况,这时候你可以调整一下spring配置文件中
<!-- 注解的支持 --> <mvc:annotation-driven />
的位置,注意要放到转换器后面,也就是上面说的第四点的配置.
上一篇: 无知者无畏,一本写了四年的书
下一篇: 多线程模拟光纤扫描过程
推荐阅读