前言
- java 语言的语法类似于C++,目前接触的开发环境:eclipse与 IntelliJ IDEA,Android Studio 应该跟 IntelliJ IDEA 很类似
- 虽然之前改改Android APK,了解了一些java开发相关的东西,但是感觉很零碎,所以最近抽出几本Java相关的书,通过实践的方式,熟悉一下java开发,如java web,如android
IntelliJ IDEA 中文显示乱码
- 有过开发经验,都要清楚一个基本的问题:【统一文件的编码为 UTF-8】,至于为何使用UTF-8而不是GBK、GB2312,我想,这是个【格局】问题,你的代码,难道仅仅运行与【自己的电脑】环境下吗?
- 我使用JFrame时,发现【标题栏】显示的中文是乱码,我立即想到是【文件编码】问题,但是解决起来,没有那么的【顺利】,但是,最终解决,操作步骤如下
设置UTF-8
- 1、【File 】 -> 【Settings…】,搜索 【File Encodings】,全部设置为【UTF-8】,这里统一采用【UTF-8】
- 2、【Settings… 】中的 【Build 】 -> 【Runner】,【VM Options】增加
-Dfile.encoding=utf-8
,
- 3、【Settings…】 【Java Compiler】,增加
-Dfile.encoding=utf-8
- 4、【Help】-> 【Edit Custom VM Options…】,后面追加
-Dfile.encoding=utf-8
- 5、修改 IntelliJ IDEA的安装目录下的问题:追加
-Dfile.encoding=utf-8
,我的路径是:
-
C:\Program Files\JetBrains\IntelliJ IDEA 2019.2.3\bin\idea.exe.vmoptions
-
C:\Program Files\JetBrains\IntelliJ IDEA 2019.2.3\bin\idea64.exe.vmoptions
- 6、【调试按钮】旁边,一般在右上角,点击【Edit Configurations…】,在 【VM options 】,追加:
-Dfile.encoding=utf-8
- 7、把文件手动保存为【UTF-8的文件】,IntelliJ IDEA 窗口的【右下角】,有个【文件编码】的图标,如显示【UTF-8】,这个跟 VS Code 有点像,重新选择为:【UTF-8】
- 以上设置完,可以重启一下: IntelliJ IDEA 软件,无须重启【电脑】
验证
- 编写包含 中文的 代码,如Debug 调试打印,测试工程代码如下
package com.zhang.draw;
import javax.swing.JFrame;
public class DrawPictureFrame extends JFrame {
public DrawPictureFrame() {
setResizable(false);
setTitle("神奇的乱码问题");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(200, 100, 300, 300);
System.out.println(System.getProperty("file.encoding"));
System.out.println("竟然中文可以显示了!!");
}
public static void main(String[] args) {
DrawPictureFrame frame = new DrawPictureFrame();
frame.setVisible(true);
}
}
显示效果
缓存问题
- 因为上面的步骤有很多,有时发现【改完】调试运行还是【中文乱码】,当时我只是让【标题栏】显示中文,后来我在调试中加了打印,类似于【刷新源代码】,从而重新【编译】,发现竟然中文【神奇】的正常了!!!
再次确认
- 我重新建了一个工程,发现【中文正常显示了】,无论是【显示】还是【调试窗口】中,所以以上步骤,建议全部设置好,一统【文件编码 UTF-8】即可
package com.zhong.wen;
import javax.swing.JFrame;
public class ZhongWenFile extends JFrame {
public ZhongWenFile() {
setResizable(false);
setTitle("中文显示是否正常");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(500, 100, 600, 450);
System.out.println("中文显示");
}
public static void main(String[] args)
{
ZhongWenFile zhongwen = new ZhongWenFile();
System.out.println("中文显示是否正常呢?");
zhongwen.setVisible(true);
}
}
- 显示效果:中文显示正常
小结
- 搭建好【顺手的开发环境】,让Java的学习更高效
- 记录哪些让人【火大】【抓狂】的瞬间,想放弃时,却又【峰回轮转】的【淡定】
- 开始【折腾】Java