在项目中经常会碰到控制台乱码和页面乱码的问题,下面是自己用的一些方法:
控制台编码乱码
打开intelliJidea的安装路径的bin目录下(例如:D:\Program Files\IntelliJ IDEA\IntelliJ IDEA 2018.3.2\bin),找到如下两个文件:
找到上图的两个文件(根据你的系统是32位或64位选择其中一个配置文件),在配置文件中添加:
-Dfile.encoding=UTF-8
下面是我自己配置的(idea64.exe.vmoptions文件,路径是本地存放IDEA的路径):
-Xms1024m
-Xmx2048m
-XX:ReservedCodeCacheSize=512m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-javaagent:D:\Program Files\IntelliJ IDEA\IntelliJ IDEA 2018.3.2\bin\JetbrainsIdesCrack-3.4-release-enc.jar
-Dfile.encoding=UTF-8
配置项目编码及IDE编码的配置:
File---->Settings--->Editor--->File Encodings 把IDE Encoding和Project Encoding配置为UTF-8,同时将下面的Default encoding for properties files也配置为UTF-8。点击Ok 或者Apply 就设置完毕了。
配置项目启动服务器参数,在tomcat配置中
通过修改上图的On 'Update' action :Update classes and resources 和 On frame deactivation :Update classes and resources
可以立即修改tomcat的jsp页面,而立即生效。(要想有这两个选项,需要部署项目到tomcat上,即Deployment要以war exploded的方法部署)
war和war exploded二者区别:
war模式:将WEB工程以包的形式上传到服务器;
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;
(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;
(2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
(3)在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。
1.选择Startup/Connection,勾选Pass environment variables,选择添加(+),加下面表中的数据
Name | Value |
JAVA_TOOL_OPTIONS | -Dfile.encoding=UTF-8 |
JAVA_OPTS | -Dfile.encoding=UTF-8 |
填写完成选择右下方,Apply,OK。
2.对于maven构建的项目,由于idea中maven的配置优先,需要在pom.xml中对maven-surefire-plugin进行配置。
如下代码所示 :
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<forkMode>once</forkMode>
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>
</plugins>