Java 智能13。随机更改编码
因此,我有许多具有不同编码的模块(UTF-8和ISO-8859-7) 我在设置的文件编码部分设置了各自的编码 我的maven还构建了每个项目的编码。我在git中也有这些文件,我并不是唯一一个参与这些项目的人。 上个月发生的情况如下: 在一些文件上,编码会随机更改为UTF-8,当我尝试将其更改回ISO-8859-7时,它不会更改,当我选择“重新加载”选项时,它不会执行任何操作。编码没有改变。 我要做的是以下步骤:Java 智能13。随机更改编码,java,intellij-idea,Java,Intellij Idea,因此,我有许多具有不同编码的模块(UTF-8和ISO-8859-7) 我在设置的文件编码部分设置了各自的编码 我的maven还构建了每个项目的编码。我在git中也有这些文件,我并不是唯一一个参与这些项目的人。 上个月发生的情况如下: 在一些文件上,编码会随机更改为UTF-8,当我尝试将其更改回ISO-8859-7时,它不会更改,当我选择“重新加载”选项时,它不会执行任何操作。编码没有改变。 我要做的是以下步骤: 选择ISO-8859-7作为编码 按选项中的转换 然后,当文件在git中标记为已更
我的问题是: 这是一个bug还是我做错了什么/缺少了我应该配置的东西 更新: 我想添加一些我发现有用的更多信息
- 每当我打开IntelliJ和我前一天修复了编码的文件时,问题就会出现
- (我不知道这是否相关,但它也会发生)当我 将文件转换为ISO编码,然后还原该编码 文件,这样我就可以看到文本,git分支变得分离
- 我也是唯一一个在这个项目上工作的人,所以没有其他人会改变 用git提交的文件
在那里你可以看到,我已经将ISO-8859-7设置为普通文件和属性文件的默认值,并且打开了UTF猜测,就像你在屏幕截图中一样。您还可以看到项目文件$project\u DIR$/src/utf8/Unicode.java具有UTF-8编码。您未看到的内容列出了使用希腊编码的文件,因为这是项目默认设置
底线:如果至少提交.idea/encodings.xml,则可以保留编码信息。在我看来,这不是观念上的缺陷,而是正常的事情。如果没有保存的项目状态,IDEA如何知道编码?编码不是存储在Git或文件系统中,而是元信息。这可能就是为什么XML文件在第一行的开头提到了它们自己的编码(您也可以在我的代码片段中看到)。Java文件没有这样的编码标记。因此,对于混合编码项目,您只需要小心。;-)
更新:如果你喜欢玩,我的测试回购是打开的。听起来像个bug。你在YouTrack中搜索过IntelliJ:?还没有在那里找到类似的错误报告,我会再次搜索:/1其他人没有这个问题吗?也许问题只是希腊语编码:)即使在你的问题更新之后,我也无法用我的小虚拟项目重新解释这一点。我已经更改了文件,关闭了项目,恢复了更改。那么(a)您是否验证了encodings.xml在修复编码时已更新?当您重新加载文件并以错误的编码显示时,是否有任何更改?(b) 你是怎么回复的?Git命令行的想法?到底是怎么回事?请给我一个复制的方法。好吧,这并没有解决问题,我已经用更多信息更新了我的帖子:/我已经在答案中添加了我的测试回复的URL。这没有帮助。我知道这不是我面临的问题,但你也没有在你主要问题下的最新评论中回答我的问题。请努力帮助我帮助你你可以用我的回购协议作为重现问题的最低起点。如果不能复制,我也无能为力。
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" defaultCharsetForPropertiesFiles="ISO-8859-7">
<file url="file://$PROJECT_DIR$/src/utf8/Unicode.java" charset="UTF-8" />
<file url="PROJECT" charset="ISO-8859-7" />
</component>
</project>