idea ssm项目出现日志中文乱码,封装的json中的msg字段中文乱码(但是json封装的bean中的字段不乱码)等其他各种项目下的中文乱码解决方案
开头划重点!(敲黑板):rebuild和mvn package的循环往复好几次的操作是解决这个问题的最主要的方法!
经过多次试验,发现这样做就可以正常显示中文了
我说为什么有时候乱码,有时候中文正常,原来下面的这些地方都必须设置好,特别是 rebuild和mvn package的循环往复好几次的操作
测试发现,一般情况下,先更新maven依赖,然后build 1一次,rebuild 一次,mvn package一次,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中的字段不乱码)等其他各种项目下的中文乱码解决方案的更多相关文章
- Linux环境下Java中文乱码解决方案
相信很多朋友遇到过Java的乱码问题,最近我也在解决一个“使用文本生成图片过程中中文以及特殊字符乱码”的问题:花了我大量时间,Debug了sun.font.sun.awt下面的各种源码,终于搞懂了其机 ...
- windows下gvim中文乱码解决方案
网罗了一些网上的解决windows下gvim中文乱码的解决方案,都试了一遍,可惜都不能完全解决我的所有问题,最后我综合一下网上的两种方案,得到了最后完全解决我的中文乱码问题的方案,配置很简单,就是把下 ...
- Xcode下的中文乱码问题
Xcode下的中文乱码问题 转载自:http://linyehui.me/2014/07/09/convert-gbk-to-utf8-on-mac.html =========== 问题原因 绝大部 ...
- MaxCompute客户端(odpscmd)在windows命令行下查询中文乱码问题处理实践
MaxCompute客户端工具是阿里云大数据计算服务MaxCompue产品官方客户端工具,通过客户端工具可以连接MaxCompute项目,完成包括数据管理.数据上下传.作业执行.用户及授权管理等各项操 ...
- myql数据库在cmd下,中文乱码的问题原因
使用navicat把数据导入数据库,这些数据都是中文,导入成功,显式也正常,但是在mysql cmd下都是乱码.检查了我的mysql配置,字符编码都是utf8,包括navicat连接时候也设置过是ut ...
- Ubuntu下Eclipse中文乱码问题解决(转)
Ubuntu下Eclipse中文乱码问题解决 把Windows下的工程导入到了Linux下Eclipse中,由于以前的工程代码,都是GBK编码的(Windows下的Eclipse 默认会去读取系统的编 ...
- 与QString("我是中文")完全一样,你必须告诉tr这个窄字符串是何种编码?你不告诉它,它就用latin1。于是所谓的乱码问题就出来了。
在论坛中漂,经常遇到有人遇到tr相关的问题.用tr的有两类人: (1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr (2)另一类人,确实是出于国际化的需要,将需要在界面上显示的 ...
- 解决Linux下Oracle中文乱码的一些心得体会 ,转自
以下转自 http://blog.itpub.net/29151695/viewspace-1173238/ 最近在linux上安装完oracle 10gR2后,又遇到了字符集乱码的问题,之前在网上找 ...
- 解决Sublime Text 3在GBK编码下的中文乱码问题听语音
Sublime Text 3是我最喜欢的代码编辑器,没有之一,因为她的性感高亮代码配色,更因为它的小巧,但是它默认不支持GBK的编码格式,因此打开GBK的代码文件,如果里面有中文的话,就会乱码 工具/ ...
随机推荐
- 解决 锁定文件失败 打不开磁盘“D:\ubuntu\Ubuntu 64 位.vmdk”或它所依赖的某个快照磁盘。 模块 Disk”启动失败
一次在使用虚拟机的过程中,电脑出问题强制关机后,重新打开虚拟机,出现了“文件锁定失败”,打不开虚拟机的情况. 上网百度查相关的解决方案,终于解决了问题.因为虚拟机运行的时候会创建相应的文件,即在虚拟机 ...
- qt的共享内存
https://blog.csdn.net/gdutlyp/article/details/50468677
- Man's Best Friend: The Science Behind the Dog and Human Relationship
http://info.thinkfun.com/stem-education/mans-best-friend-the-science-behind-the-dog-and-human-relati ...
- CDN高级技术专家周哲:深度剖析短视频分发过程中的用户体验优化技术点
深圳云栖大会已经圆满落幕,在3月29日飞天技术汇-弹性计算.网络和CDN专场中,阿里云CDN高级技术专家周哲为我们带来了<海量短视频极速分发>的主题分享,带领我们从视频内容采集.上传.存储 ...
- git五分钟教程
使用Git前,需要先建立一个仓库(repository).您可以使用一个已经存在的目录作为Git仓库或创建一个空目录. 使用您当前目录作为Git仓库,我们只需使它初始化. git init 使用我们指 ...
- APUE 12.7 取消选项
- 一个最简单的WebSocket hello world demo
服务器端代码不超过42行: const WSServer = require("./server.js"); var counter = 0; function createWeb ...
- python3编程的一些实用技巧1
1.choice函数:返回一个列表,元组,字符串的随机项 : 调用时应导入random模块,如from random import choice 2.print 两个字符串, 逗号,+号进行连 ...
- Java并发:Executor与连接池
概述 首先来说一说java连接池中常用到的几个类:Executor,ExecutorService,ScheduledExecutorService Executor 执行已经提交的任务对象.此接口提 ...
- 【bzoj 3622】已经没有什么好害怕的了
题目 看到这个数据范围就发现我们需要一个\(O(n^2)\)的做法了,那大概率是\(dp\)了 看到恰好\(k\)个我们就知道这基本是个容斥了 首先解方程发现我们需要使得\(a>b\)的恰好有\ ...