eclipse - Eclipse 插件开发:存储为 UTF8 的德语变音符号在 SWT 控件中显示错误,但在字符串常量中正确
问题描述
我正在编写一个 Eclipse 插件。我所有的源文件都编码为 UTF8(Alt+Enter 显示“文本文件编码:UTF8”)。
当我使用“右键单击-> 作为 Eclipse 应用程序运行”运行我的插件时,一切正常。
但是,当我在另一个(但相同,即复制的)Eclipse 应用程序中使用更新站点安装我的插件时,德语变音符号 (Ä Ö Ü...) 在所有 SWT 控件中都搞砸了,但在字符串常量中却没有。
例子:
public class MyWizard extends Wizard{
public NewEntityWizard() {
super();
setWindowTitle("This will NOT work: Ä");
}
public void foo() {
String contents = "This WILL work: Ä";
ByteArrayInputStream stream = new ByteArrayInputStream(contents.getBytes());
// write stream to file test.txt
}
- 窗口标题将显示为:“这将不起作用:ä”
- 在 Eclipse 中打开文件 test.txt 时,使用 UTF8 编码,它将包含正确的测试:“This WILL work: Ä”
- 两者都可以在使用 Run as 运行时工作,即在不安装插件时。
我该如何解决这个问题?
我认为,编译的插件/bin 文件可能(正确地)以 UTF8 编码,但在第二个 Eclipse 安装中以不同的编码读取。如果是这样:我如何告诉 JVM / Eclipse 以 UTF8 格式读取插件的 bin 文件?
任何帮助表示赞赏。
解决方案
自己解决了这个问题。问题是 Eclipse 中的错误(我正在运行 Oxygen,不确定其他版本中是否存在问题)。
错误是,构建产品的 PDE Builder 不遵守 Eclipse 中配置的编码设置。它使用平台的默认编码,不是 UTF8。这似乎是 Windows 唯一的问题。java builder没有遇到这个bug,这就是为什么在测试过程中没有出现这个问题的原因。
错误说明: https ://bugs.eclipse.org/bugs/show_bug.cgi?id=516656
解决方案:作为解决方法,我在构建 Eclipse 安装的 eclipse.ini 中添加了以下行,再次构建产品并再次安装。该设置使 UTF-8 成为整个 VM 的默认编码。:
-Dfile.encoding=UTF-8
这解决了这个问题。
推荐阅读
- javascript - 如何制作一个搜索外部 .txt 文件内容的搜索栏?
- python - 使用 __setattr__ 监听 Selenium 中 current_url 变化的正确方法
- ios - 滚动视图中的 iOS ImageView 和 TextView
- swift - Xcode FIREBASE 崩溃
- javascript - 如何在 javascript 中的 1 个画布上同时显示多个动画
- python - C 中的 Python 扩展 - 元类
- java - 文件对象的数组列表getname为空字符串问题
- android - 二进制 XML 文件第 27 行:二进制 XML 文件第 27 行:膨胀类 TextView 时出错
- python - 命名空间的 DRF 路由器问题
- python - Python Flask WTForms 依赖下拉列表