1. 修改文件编码方式
打开
IntelliJ IDEA>File>Setting>Editor>File Encodings,
将Global Encoding、Project Encoding、Default encodeing for
properties files这三项都设置成UTF-8,点击OK或者Apply。
2. 修改java编译器,添加额外的命令行参数,指定在编译时使用指定的字符集
3. 选择支持中文的字体(偶尔会因为此原因乱码)
file->settings->appearence里面有个Name设置成支持中文的字 体(这个很重要)
前三点属于基本设置,针对不同情况下的乱码,下面分别给出解决方案。
4. 如果使用maven,为避免在执行maven指令时出现中文乱码,做以下设置
5. 如果项目使用Tomcat启动,Tomcat启动日志中文乱码,那么更改Tomcat的控制台输出文件编码方式:
去Tomcat安装目录下的conf文件夹,找到logging.properties文件,修改java.util.logging.ConsoleHandler.encoding = utf-8为 java.util.logging.ConsoleHandler.encoding = GBK
这种方法不是主流的,但优点是在idea控制台和dos命令窗口启动时都可避免中文乱码,缺点是idea上Run/Debug Configurations-->VM options:设置为-Dfile.encoding=UTF-8时sout输出中文会出现乱码;且idea启动Tomcat时控制台的 Tomcat catalina log页面还是中文乱码。所以两者不要同时设置。
6. 设置全局的vm启动参数(通常123步骤设置完之后,基本不会出现问题)
每个项目下可以自己指定特有的vm参数,其优先级高于全局的设置
全局设置有两种方式
方式一:
打开IntelliJ IDEA本地安装目录中bin文件夹下的idea.exe.vmoptions和idea64.exe.vmoptions这两个文件。分别在这两个文件内容的末尾添加-Dfile.encoding=UTF-8
PS:方式一可能不生效,c盘下的C:\Users\你自己的用户名\.IntelliJIdea2019.1\config配置下还有一个idea64.exe.vmoptions文件,idea是以这个配置为准的,你idea安装目录下的改了没用,被这个覆盖了,所以起不了作用,你需要手动修改此文件。
方式二:如图操作,在该文件末尾加上-Dfile.encoding=UTF-8
如果上面这些步骤都执行了,配置正确后,IDEA还出现乱码。
这个时候只有一种解释:IDEA把你的字体编码弄错了,但是在哪里弄错的呢。经过多次排查寻找,终于,在项目的目录下有个.idea的文件夹,这个文件夹里有个encodings.xml的文件里面记录了你某些文件对应的特殊编码,为什么会有这种编码呢,因为之前我无意中点了右下角的编码,改了一下,就被idea记录到 encodings.xml中,当你再次访问的时候,它就会用那种编码。只要把encodings.xml里面的除了UTF-8的都删了就好啦。
编辑整理 丨姜美静