zpo*_*kas 5 java intellij-idea
所以,我必须有不同的编码(UTF-8和ISO-8859-7)许多模块和I设置各自的编码的文件编码的部分设置
和我的Maven构建国家每个项目的编码也是如此.我也有这些文件在git中,我并不是唯一的这些项目,即其他人也在其中.

上个月会发生什么:随机地在一些文件上编码更改为UTF-8,当我尝试将其更改回ISO-8859-7时,当我选择"重新加载"选项时它没有任何改变.编码不会改变.
我要做的是以下步骤:
我的IntelliJ版本:

我的问题是:这是一个错误还是我做错了什么/错过了我应该配置的东西?
更新:我想添加一些我发现有用的信息
我能够通过将具有混合文件的项目提交给没有IntelliJ IDEA项目文件的 Git来重现这一点,这通常是应该做的,因为人们使用不同的IDE.
然后,如果我将项目克隆到另一个目录并创建一个新的IDEA项目,编码设置是不同的,但即使我更正它们,第一次加载希腊文件IDEA认为它是UTF-8因为"自动检测UTF编码文件"处于活动状态.如果设置处于非活动状态,则相反:希腊语文件将正确显示,但UTF-8文件显示为希腊语.
无论出了什么问题,我都可以轻松切换编码并从弹出对话框中选择"重新加载".
然后我将IDEA文件(.idea子目录加上MyProject.iml文件)提交到同一个存储库并再次克隆.这次文件都正确显示.所以这是我建议的解决方法.希望它适用于您项目中的所有IDEA用户.我不知道如果例如Eclipse用户将新文件添加到repo时会发生什么,当您下次提取/获取时IDEA仍然不知道该文件.可能你必须再次分配正确的编码.
那么IDEA如何记住哪些文件或目录具有哪种编码?查看文件.idea/encodings.xml:
<?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>
Run Code Online (Sandbox Code Playgroud)
在那里你可以看到我将ISO-8859-7设置为普通和属性文件的默认设置,并且UTF猜测已打开,就像你在屏幕截图中一样.您还看到项目文件$ PROJECT_DIR $/src/utf8/Unicode.java具有UTF-8编码.您没有看到列出的文件有希腊语编码,因为这是项目默认值.
底线:如果您至少提交.idea/encodings.xml,则可以保留编码信息.在我看来,这不是 IDEA中的错误,而是正常的事情.如果您没有保存的项目状态,IDEA如何知道编码?编码不存储在Git或文件系统中,它是元信息.这可能就是为什么XML文件在第一行开头就提到了自己编码的原因(正如你在我的代码片段中也可以看到的那样).Java文件没有这样的编码标记.因此,对于混合编码项目,您只需要小心.;-)
更新:如果你想玩,我的测试报告在GitHub上.
| 归档时间: |
|
| 查看次数: |
1652 次 |
| 最近记录: |