【发布时间】:2016-11-12 21:09:51
【问题描述】:
在 Netbeans 中使用 JavaFX 处理一个简单的翻译器项目。从 Netbeans 运行它,它可以完美地编译和运行。没有渲染问题:
但是当运行相同的可执行文件时([project-folder]\dist\Translator.jar):
Mojibake。 ([project-folder]\dist\run##########\Translator.jar) 也是一样的:
文本可能在四个地方出现格式错误:将术语列表发送给翻译人员,翻译人员使用 Web 服务检索翻译 (1)。然后将这些缓存在文件 (2) 中,并由解析器 (3) 加载,从而使数据可用于在 JavaFX 窗口 (4) 中显示。我检查了这些文件,它们是有效的 UTF-8,解析器仅在加载现有文件时运行,新部署不会有任何文件。所以我把范围缩小到 JavaFX 窗口中的显示。
【问题讨论】:
-
文件编码可能是有效的UTF-8,但是jvm使用的默认编码可能与UTF-8不同,程序中的编码可能没有正确指定...
-
@fabian 如何强制使用 UTF-8 作为默认值?我认为 Java 的原则是它在任何地方都可以工作。
-
最好为您用来读取这些文件/webservice 的任何内容指定编码。简短的描述和/或代码示例可能会有所帮助(在问题本身中发布代码 minimal reproducible example,而不仅仅是代码的链接。使用
System.out可能足以证明问题。)。 -
@fabian 对代码示例感到抱歉;它太集成了,无法真正隔离它。比特定用例解决方案更感兴趣的是查看是否有其他人遇到过这个问题(就像大多数 StackExchange 答案一样)。终于找到了解决办法,回答了我自己的问题。
标签: netbeans javafx utf-8 mojibake