【发布时间】:2013-11-28 07:28:46
【问题描述】:
我遇到了一个奇怪的问题。我的 Java 应用程序不接受重音字符,例如 é、è 或 ê。 Swing 组件JTextField 将其转换为e。此外,我无法插入:´
这很奇怪,因为它不适用于旨在分发给用户的已编译和打包的应用程序(JAR 文件)。当我在 Eclipse 中执行我的应用程序时,一切正常:这些字符被接受。
我在启动时检查了使用的 VM 编码。他们是不同的。打包的应用程序使用 Cp1252,Eclipse 以“ISO-...”开头。系统属性“file.encoding”相应地显示了相关的编码。因此,我尝试切换编码以便在 Eclipse 中重现该问题或在我的应用程序中修复它。但结果和以前一样。
你知道发生了什么吗?
【问题讨论】:
-
1) " Cheers PAX" 这相当于 4 行噪音。以后别管了。 2) 不要忘记添加 Java 标签。 3)如果你添加了一个标签,它变成了“主要标签”,那么就没有必要在问题标题中添加这个词了。
-
好的,谢谢,我会记住的!更新:如果我按变音字符后跟“e”,则 keytyped 事件会收到不带变音字符的“e”。
-
我正要建议你发布一个 SSCCE,但后来我意识到只需要几行代码就可以重现问题......而且我不知道如何在 任何应用程序。无论哪种方式。我正在使用基于英语的语言环境运行 Windows。你能告诉我如何在记事本(或其他默认的 Windows 软件)中生成这些字符吗?
-
不需要删除。如果您想插入死键´,那么您可以将 Windows 键盘设置切换为德语布局(例如)。键位于美式键盘布局的“+”键上。
标签: java swing encoding diacritics