【问题标题】:Eclipse assumed wrong encoding and changed all project files' encodingEclipse 假定编码错误并更改了所有项目文件的编码
【发布时间】:2023-03-09 13:20:01
【问题描述】:

我正在处理一个 Java 项目,其中所有源代码文件都以 UTF-8 编码,并且许多包含日文文本。

我升级了 Eclipse,并打开了相同的工作区。

然而,Eclipse 立即销毁了我所有工作区的文件,将它们更改为 Eclipse 的默认编码 (Cp1252) 并重新保存它们,因此:

String A = "カフェ";

现在:

String A = "飲�物";

使文件恢复原状的最佳方法是什么?

【问题讨论】:

  • 是否可以安全地假设您没有使用某种源代码管理器(也称为版本控制系统),例如 git、svn、Perforce 等?
  • @E-Riz 我确实没有在这个项目上使用任何版本控制。
  • Eclipse 不会“重新保存”所有文件,除非您采取一些明确的措施。这些文件可能仍然是 UTF-8 编码的,但 Eclipse 将它们显示为 CP-1252。我相信您所要做的就是将 Eclipse 的默认编码改回 UTF-8。
  • @JimGarrison 我通常也希望如此,但如果我在 Notepad++ 中打开文件,我可以看到它们当前以包含字符的 UTF-8 正确编码,因为 Cp1252 将解码 UTF-8(所以这些文件现在实际上包含 飲ã�¿ç‰© 但以 UTF-8 编码)。这些文件都同时更新了(除了它们被导入 Eclipse 之外没有任何改变 - 没有移动它们)所以 Eclipse 实际上确实重新保存了它们。注意:我有各种可能在其中发挥作用的插件,例如 Lombok。但它已经发生了,这本身我无法逆转。
  • 字符串 飲ã�¿ç‰© 看起来像 UTF-8 被解释为 CP1252。我

标签: java eclipse encoding


【解决方案1】:

Eclipse 有一个Local History feature,但它应用于单个文件级别,而不是项目甚至文件夹级别。您可能会使用它来逐个恢复每个文件的先前版本;不幸的是,我认为没有针对整个容器(文件夹或项目)执行此操作的 UI。

我相信您现在不需要被告知,但几乎每个重要的项目都值得存储在某种版本控制中,即使它只是本地的。

【讨论】:

  • 虽然这让我知道哪些文件受到了影响(我没有立即注意到并且从那时起进行了 - 不是太多 - 更改),但这是一个绝妙的答案;我已经使用 Eclipse 超过 5 年了,但不知道它的存在!我想它的许多功能还有很多需要学习的地方。
  • 作为关于版本控制的单独评论:我已经编程了十多年,仍然需要对此进行提醒。 (虽然版本控制很棒,但对我来说就像洗衣服一样自然。)非常感谢!
猜你喜欢
  • 2019-03-13
  • 2021-03-17
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 2014-02-11
  • 2014-07-02
  • 2013-08-19
  • 1970-01-01
相关资源
最近更新 更多