由《编译.java文件时的编码问题》可知,在编译.java文件的时候,需要正确指定一个编码方案,该编码方案用于解码.java文件的字节流。

那么在使用Intellij Idea编译(假定使用javac编译工具)项目下所有的.java文件时,该如何指定正确的编码方案呢?

1)首先,我们需要知道当执行"Build"菜单下的"Make Project"命令,编译整个项目下的.java文件的时候,Intellij Idea执行的具体命令。我们可以通过以下方式获得,执行"Build"菜单下的"Generate Ant Build"命令,生成一个Ant Build File,然后通过这个Ant Build File,我们就可以得到Intellij Idea在编译整个项目的时候执行的具体命令。[1]

2)借助于1)中的Ant Build File,可以发现Intellij Idea在编译项目下的.java文件时,执行的具体命令是“带有各种参数的javac命令”。其中有一个"-encoding"参数,该参数就是用来指定编译.java文件时应该使用的编码方案的,如图1所示。Intellij Idea自身有一套机制,用来确定该参数的值,经过测试,该值有可能来自"Project Encoding"的配置,见图2;有可能来自某个.java文件被Intellij Idea检测到的使用的编码方案,见链接;也有可能来自图3中所示的编译器参数配置等等。具体的机制需要查阅相关文档。

图1

图2

图3

3)由2)可得,Intellij Idea自身有一套确定"-encoding"参数值的机制,但是往往最后被确定的值不是我们想要的。而且"encoding"参数是非常重要的一个参数,为了更加准确地指定"-encoding"参数,我们可以在图3所示的编译器参数配置中明确配置"-encoding xxx"。

参考文献:

[1]http://stackoverflow.com/questions/2966530/can-i-see-the-exact-commands-intellij-uses-to-build-a-java-project

idea查看java文件编码_Intellij Idea编译项目下的.java文件时的编码问题相关推荐

  1. MyEclipse打不开项目下的jsp文件,或是打开jsp文件报错!

    MyEclipse打不开项目下的jsp文件,或是打开jsp文件报错! 解决:出现此问题的根本原因是因为MyEclipse编译器默认的打开jsp文件的方式不对! 下面是设置MyEclipse打开jsp的 ...

  2. java打包dex_Android 命令行编译、打包生成apk文件

    一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1.6. ...

  3. java中无法解析的编译问题怎么解决,java.lang.Error: 无法解析的编译问题

    Exception in thread "main " java.lang.Error: 无法解析的编译问题: 无法解析 MainWindow at MainWindow.main ...

  4. sizeof不是java关键字是_下列哪项不是Java语言的关键字。

    下列哪项不是Java语言的关键字. A:instanceof B:goto C:volatile D:sizeof 正确答案:sizeof 解析: 下列哪项不是Java语言的关键字. A:instan ...

  5. java基础5:工厂模式、单例模式、File文件类、递归、IO流、Properties配置文件、网络编程、利用IO流模拟注册登录功能、关于反射、JDK动态代理

    1.工厂模式 23种java设计模式之一 1)提供抽象类(基类) 2)提供一些子类,完成方法重写 3)提供一个接口:完成具体子类的实例化对象的创建,不能直接new子类,构造函数私有化. 优点:具体的子 ...

  6. Java静态编译技术:突破Java“冷启动”桎梏,实现启动性能“质”的飞跃

    自1996年诞生以来,Java语言长期在最受欢迎的编程语言排行榜中占据领先地位.除了语言本身的优秀特性之外,Java语言持续演进.不断发展也是它能够保持长盛不衰的重要原因. |Java市场份额不断下降 ...

  7. java printwriter乱码_Java servlet 使用 PrintWriter 时的编码与乱码的示例代码

    在前面的网页中的编码与乱码系列中,曾多次提到使用 servlet 方式构建的动态响应流,不过在那里都是直接使用字节流的方式,不过,更为常见的方式是使用字符流.而在前面,又谈到了 Java 字节流与字符 ...

  8. Java编程入门(2.1):基础Java应用程序

    程序是指可以通过计算机执行一系列指令组成的任务.一个简单的想法,但是计算机运行任何指令都必须按照计算机可以使用的方式编写.这意味着,程序必须使用编程语言编写.编程语言区别于普通人类语言的地方在于它完全 ...

  9. 无法加载操作系统,因为无法验证文件或其某个00项的数字签名

    无法加载操作系统,因为无法验证文件或其某个00项的数字签名 你的电脑/设备需要修复 无法加载操作系统,因为无法验证文件或其某个00项的数字签名. 文件\Windows\System32\drivers ...

最新文章

  1. php对应 c int16,PHP中十进制 和十六进制的转换问题
  2. 搞懂单链表常见面试题
  3. HTML DOM Event对象
  4. 获取json对象的长度
  5. android md 控件,Android基本UI控件.md
  6. Signals Slots(Qt5)
  7. C#LeetCode刷题之#819-最常见的单词(Most Common Word)
  8. vForum 2014点滴随笔
  9. VS 2008 和 .NET 3.5 Beta 2 发布了
  10. android 3.10. 内核,编译android 3.10内核源码时出错
  11. Nero 9官方正版下载(自带正版序列号)-最好的中文免费刻录软件
  12. RM3100 stm32 hal库 spi 磁力计数据
  13. JAVA随机抽取一名幸运观众(手动输入观众)小实例
  14. PhotoZoom pro8激活码使用方法下载安装教程
  15. 【DP】【Burnside】【多项式】烷基计数
  16. 2020.8.13 京东Android开发二面
  17. 02. 只允许使用QQ和微信 - 服务 ❀ 飞塔 (Fortinet6.0) 防火墙
  18. bundle包是什么意思_bundle与package区别与联系
  19. linux查看raid情况工具,使用MegaCli工具查看Raid磁盘阵列状态
  20. 设计必备,5个免费图标资源网站

热门文章

  1. 飞信发送手机短信接口
  2. 解决Centos 7 下 tomcat字体异常 Font '宋体' is not available to the JVM
  3. python 描述符参考文档_描述符 - Python 学习笔记 - UDN开源文档
  4. 2022 CCPC 威海 赛后总结
  5. STM32F103C8T6和其他stm32的区别
  6. java jsr 303_java对象校验(validation)-JSR303规范
  7. 【附源码】计算机毕业设计SSM社区新冠疫苗接种管理系统
  8. HTML+JS中网页跳转的写法
  9. ISIS协议和代码分析
  10. 教你快速去掉VC运行环境下的Press any key to continue