【问题标题】:Intellij IDEA: "unmappable character for encoding UTF-8" compiling ISO-8859-1 filesIntellij IDEA:“用于编码 UTF-8 的不可映射字符”编译 ISO-8859-1 文件
【发布时间】:2011-09-09 18:01:17
【问题描述】:

我有一个混合编码的源代码树,我的一些源文件收到了上面的警告。我成功地将这些文件的编码设置为 ISO 8859-1,并且在使 IDEA 的缓存无效后,它们现在可以在编辑器中正确显示。但是,当我编译时,我仍然收到错误消息。

生产版本使用 ant,这不是问题,但这意味着我无法在 IDE 中“制作”。有没有办法让 IDEA 正确编译这些,或者如果失败,将错误降级为警告?

【问题讨论】:

  • 我对IDEA一无所知,但是为什么需要混合编码的源代码树呢?将所有文件转换为 UTF-8 不会让生活更轻松吗?
  • 有问题的文件与具有已知编码的外语数据中的正则表达式匹配有关。在您匹配的编码中编写正则表达式更容易且不易出错......或者我假设。 (我是这个代码库的新手。)
  • 当字符串在内存中时,无论如何它们都是 UTF-16,与文件所在的编码无关(假设您正确编译它们)。因此,虽然我可以看到为什么这些文件是以这些编码创建的,但现在没有什么反对转换它们的。 (当然,你也可以尝试修复 IDEA 的 bug。)

标签: java encoding intellij-idea javac


【解决方案1】:

我在 IntelliJ 选项面板中添加此属性解决了这个问题编译器/Java 编译器

额外的命令行参数-encoding ISO-8859-1

【讨论】:

    【解决方案2】:

    我在 encoding.xml 中有 UTF-8 编码,如下所示,但仍然无法正常工作。不断收到错误“错误:java:错误:用于编码 UTF-8 的不可映射字符 (0xFE)”

    <?xml version="1.0" encoding="UTF-8"?>
    <project version="4">
      <component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
        <file url="file://$PROJECT_DIR$" charset="UTF-8" />
        <file url="PROJECT" charset="UTF-8" />
      </component>
    </project>
    

    【讨论】:

      【解决方案3】:

      看起来像known bug

      【讨论】:

      • 我有一个单模块项目,所以如果准确报告了该错误,我想我正在寻找不同的东西。
      • 您可以提交单独的问题并附上示例项目,以便我们进行调查。
      【解决方案4】:

      如果您使用 Intellij,对我来说最快的方法是:

      File -&gt; File Properties-&gt; File encoding

      然后选择你想要的,在本例中为ISO-8859-1

      【讨论】:

        【解决方案5】:

        在 IntelliJ 2019.3 中测试的解决方案

        打开麻烦的文件。转到文件-> 文件编码。 (右下角还有一个快速选项)选择所需的编码。就我而言,它是 UTF-8。当它提示您是否要以新编码转换文件并覆盖内容时,请单击转换。

        尝试编译。你应该可以正常编译了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-10
          • 2016-10-04
          • 2011-09-23
          • 1970-01-01
          • 2011-07-26
          • 2011-04-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多