分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

idea ssm项目出现日志中文乱码,封装的json中的msg字段中文乱码(但是json封装的bean中的字段不乱码)等其他各种项目下的中文乱码解决方案

发布时间:2023-09-06 02:23责任编辑:白小东关键词:jsjson乱码

 开头划重点!(敲黑板):rebuild和mvn package的循环往复好几次的操作是解决这个问题的最主要的方法!

经过多次试验,发现这样做就可以正常显示中文了

我说为什么有时候乱码,有时候中文正常,原来下面的这些地方都必须设置好,特别是 rebuild和mvn package的循环往复好几次的操作

首先,在项目原有的基础上加上

<!-- 新加了此行用于解决中文编码问题,然后项目本身编码必须设置为全用utf-8(在setting中设置,得把项目加进去,然后修改,修改时也选utf-8),然后打包war时多rebuild几次,项目内整体所有地方就都不会出现中文乱码问题了,不管是msg字段还是日志等都不会出现中文乱码问题了,原因至今未找到 --> ???????????????????????????<!-- 更新一下maven依赖,然后右击项目,先build一次,然后再rebuild一次,然后再用windows资源管理器,进入项目目录,mvn package一次,然后再rebuild一次,然后再mvn package一次,这样 rebuild和mvn package循环往复好几次,这样才能解决中文编码问题,这是个bug,不过终于用这种奇技淫巧实现了,网上都找不到这样的方法,完全是因为偶然的多rebuild和mvn package几次时,看出了解决中文编码乱码后的不乱码的效果,才发现这样能解决中文编码问题的,可能是rebuild项目和mvn package时出现了一些文件上的影响到字符编码的因素,导致只有往复循环执行上面说的操作好几次,才能够在rebuild和mvn package 构建打包项目时正确的把支持中文编码的代码构建上去,可能是这个原因。 --> ???????????????????????????<value>application/json;charset=UTF-8</value>
<beans xmlns="http://www.springframework.org/schema/beans" ??????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ??????xmlns:mvc="http://www.springframework.org/schema/mvc" ??????xmlns:context="http://www.springframework.org/schema/context" ??????xmlns:aop="http://www.springframework.org/schema/aop" ??????xmlns:tx="http://www.springframework.org/schema/tx" ??????xsi:schemaLocation="http://www.springframework.org/schema/beans ???????http://www.springframework.org/schema/beans/spring-beans-4.1.xsd ???????http://www.springframework.org/schema/mvc ???????http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd ???????http://www.springframework.org/schema/context ???????http://www.springframework.org/schema/context/spring-context-4.1.xsd ???????http://www.springframework.org/schema/aop ???????http://www.springframework.org/schema/aop/spring-aop-4.1.xsd ???????http://www.springframework.org/schema/tx ???????http://www.springframework.org/schema/tx/spring-tx-4.1.xsd "> ???<!-- springmvc的配置文件,包含网站跳转逻辑的控制、配置 --> ???<!-- 组件扫描的方式加载Handler --> ???<context:component-scan ???????????base-package="org.kinome" use-default-filters="true"> ???????<!-- 只扫描控制器 其他不扫 --> ???????<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter> ???</context:component-scan> ???<!-- 视图解析器 --> ???<!--<bean--> ???????????<!--class="org.springframework.web.servlet.view.InternalResourceViewResolver">--> ???????<!--<property name="prefix" value="/WEB-INF/views/"></property>--> ???????<!--<property name="suffix" value=".jsp"></property>--> ???<!--</bean>--> ???<!-- 视图解析器 必须要开 否则使用 ModelAndView 时无法找到jsp路径位置 这里只开视图解析器 不使用上面那个视图解析器的配置就行了 --> ???<bean ???????????class="org.springframework.web.servlet.view.InternalResourceViewResolver" /> ???<!-- 两个标准配置 --> ???<!-- 将springmvc不能处理的请求交给tomcat 实现动态资源和静态资源都能处理 --> ???<mvc:default-servlet-handler></mvc:default-servlet-handler> ???<!-- 使用消息转换器转换编码方式 因为spring的某个类在处理返回json时编码指定为iso-xxx了,所以会出现中文乱码,需要进行编码转换 --> ???<!-- 需要把这个bean放在 <mvc:annotation-driven/> 之前(上面),否则不会生效 --> ???<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> ???????<property name="messageConverters"> ???????????<list> ???????????????<!-- 因为优先级的问题 需要把 ByteArray 加在 json的前面,否则返回的文件会损坏 ??????????????参考:https://blog.csdn.net/u013555226/article/details/77026068 ???????????????http://www.iteye.com/topic/1125784 ???????????????--> ???????????????<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> ???????????????<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> ???????????????<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> ???????????????????????????<!-- 新加了此行用于解决中文编码问题,然后项目本身编码必须设置为全用utf-8(在setting中设置,得把项目加进去,然后修改,修改时也选utf-8),然后打包war时多rebuild几次,项目内整体所有地方就都不会出现中文乱码问题了,不管是msg字段还是日志等都不会出现中文乱码问题了,原因至今未找到 --> ???????????????????????????<!-- 更新一下maven依赖,然后右击项目,先build一次,然后再rebuild一次,然后再用windows资源管理器,进入项目目录,mvn package一次,然后再rebuild一次,然后再mvn package一次,这样 rebuild和mvn package循环往复好几次,这样才能解决中文编码问题,这是个bug,不过终于用这种奇技淫巧实现了,网上都找不到这样的方法,完全是因为偶然的多rebuild和mvn package几次时,看出了解决中文编码乱码后的不乱码的效果,才发现这样能解决中文编码问题的,可能是rebuild项目和mvn package时出现了一些文件上的影响到字符编码的因素,导致只有往复循环执行上面说的操作好几次,才能够在rebuild和mvn package 构建打包项目时正确的把支持中文编码的代码构建上去,可能是这个原因。 --> ???????????????????????????<value>application/json;charset=UTF-8</value> ???????????????????????</list> ???????????????????</property> ???????????????</bean> ???????????</list> ???????</property> ???</bean> ???<!-- 支持springmvc一些更加高级的功能 比如 jsr303校验 快捷的ajax请求 映射动态请求 xxx --> ???<mvc:annotation-driven/> ???<!-- location元素表示web目录下的static包下的所有文件; ????????mapping元素表示以/static开头的所有请求路径,如/static/a 或者/static/a/b; ????????该配置的作用是:DispatcherServlet不会拦截以/static开头的所有请求路径,并当作静态资源 ????????交由Servlet处理 --> ???<mvc:resources mapping="/static/**" location="/static/"/> ???<!--导入文件上传配置--> ???<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> ???<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> ???<property name="defaultEncoding" value="UTF-8"/> ???<!-- 指定所上传文件的总大小不能超过10MB 10240KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 --> ???<property name="maxUploadSize" value="10240000"/> ???</bean> ???<!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException --> ???<!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 --> ???<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> ???<property name="exceptionMappings"> ???<props> ???<!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到 /views/errorPage/fileSizeIsTooLarge.jsp 页面 --> ???<prop key="org.springframework.web.multipart.MaxUploadSizeExceededException"> ???????/views/errorPage/fileSizeIsTooLarge.jsp ???</prop> ???</props> ???</property> ???</bean></beans>

然后,把项目本体字符全部设置为utf-8:

注意:这里需要+一个项目,然后点击修改来修改它的编码

这里需要把项目加进去后再修改,修改后idea的配置文件也会更新,这里用git看到更新了

这个settings是分项目的,也就是说不同的项目设置是不同的,所以这里只有它自己,另一个项目是看不到这个设置路径的

然后,关键来了!

重点是: 我的是idea的maven的ssm项目,我发现项目在需要打包时,必须先

更新一下maven依赖,然后右击项目,先build一次,然后再rebuild一次,然后再用windows资源管理器,进入项目目录,

mvn package一次,然后再rebuild一次,然后再mvn package一次,这样 rebuild和mvn package循环往复好几次,这样才能解决中文编码问题,

这是个bug,不过终于用这种奇技淫巧实现了,网上都找不到这样的方法,完全是因为偶然的多rebuild和mvn package几次时,看出了解决中文编码乱码后的不乱码的效果,

才发现这样能解决中文编码问题的,可能是rebuild项目和mvn package时出现了一些文件上的影响到字符编码的因素,导致只有往复循环执行上面说的操作好几次,才能够在rebuild和mvn package 构建打包项目时正确的把支持中文编码的代码构建上去,可能是这个原因。

下面是成功实现的效果:

idea ssm项目出现日志中文乱码,封装的json中的msg字段中文乱码(但是json封装的bean中的字段不乱码)等其他各种项目下的中文乱码解决方案

原文地址:https://www.cnblogs.com/kinome/p/9988513.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved