【SpringMVC】一次处理项目中文乱码的经历
2017-01-17 00:04
387 查看
一次处理项目中文乱码的经历
背景
今天把旧服务器上的项目转移到新服务器上,结果返回的json中的中文乱码了,觉得很奇怪,因为新服务器和旧服务器都是TX云,也不会有太大区别呀,于是乎开始了为期半天的蛋疼之旅。项目使用的是SpringMVC+MySQL+Mybatis,于是从各个方面查看Bug到底躲在哪,以下是我搜集到的和使用到的方法:
在web.xml中加入编码过滤器
修改web.xml,加入如下filter:<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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
连接数据库时加入字符编码
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
RequestMapping注解中加入produces字段
@RequestMapping(value = "/test", produces="application/json;charset=UTF-8")
SpringMVC配置文件spring-mvc.ml中加入消息转换器
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 --> </list> </property> </bean>
SpringMVC配置文件spring-mvc.ml中加入StringHttpMessageConverter
<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> <value>application/json;charset=UTF-8</value> </list> </property> </bean>
The End
其实上面这些在项目中都已经使用了,最后我也是实在是找不到还有哪些没做的地方,于是开始怀疑是不是我数据库有问题,用了以前的数据库发现果然不乱码,一查数据库果然,数据本身存进去的时候就乱码了。因为是新开的机器,没有中文语言,我又在上面的MySQL执行了sql文件,所以···浪费了好长时间!!!想想时间也浪费了,不如好好整理一下吧,也许对你们有用呢^_^
另外发现AnnotationMethodHandlerAdapter和MappingJacksonHttpMessageConverter都是已经deprecated的类,也许对应的技术也应该更新换代了。
相关文章推荐
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- web项目中get方式提交中文乱码的处理
- springmvc 处理http get/post请求中文乱码的问题
- springMVC表单处理中文乱码问题
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- J2EE项目下MySql数据库中文乱码处理
- 网上一次MySQL中文乱码问题的处理过程
- 解决VIM中文乱码的一次经历
- javaWed项目中用过滤器实现转码功能,敏感词汇过滤更能,处理Get和Post接收数据中的中文乱码问题以及敏感词汇的处理
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- SpringMVC系列(三)JQuery和JSON方式参数传递并处理JAVAWEB中文乱码问题
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- springmvc 使用fastjson 处理 json 数据时中文乱码
- 中文乱码处理(项目中解决方法)
- SpringMVC3.2 处理Ajax请求时返回json字符串的中文乱码问题
- 【转】Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- 网上一次MySQL中文乱码问题的处理过程
- eclipse项目导入到Android studio中文乱码处理
- SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;