我最近在 eclipse 中创建了一个应用程序。我将其导出为可运行的 jar ,并且除了希腊字母之外,所有英语都工作正常。当我尝试在应用程序中导入带有希腊字符的文件时,它们无法正确显示。我尝试将所有编码更改为 UTF-8 但没有成功。我也有带有希腊菜单的确切应用程序,但它也没有正确显示。到目前为止解决这个问题的唯一方法是创建一个可运行的 .bat 文件并将其粘贴到其中:
start cmd /k java -Dfile.encoding=UTF-8 -jar Compiler.jar
但这对我来说没有任何意义,因为我的项目中的每个文件和文件夹都使用 UTF-8 编码。我正在使用 Windows 10、最新的 Eclipse 和 javafx for Eclipse。
希腊字母存在于项目内的某些文件中,例如 src/grammars/xx-file。应用程序可以毫无问题地找到它们并读取它们。希腊字母也显示在应用程序的标签和标题上。我使用javafx环境的默认字体。 例如,一个文件包含以下内容:I->#E|ε。当导入到程序中时,它会更改为:I->#E|Ξµ
我还想补充一点,为了从 .jar 中读取这些文件,我必须使用 InputStream。那么是否可以指定InputStream的编码?
最佳答案
对于任何有兴趣的人来说都可以。我找到了问题的解决方案。我添加了一个
InputStreamReader inputReader = new InputStreamReader(streamIn, StandardCharsets.UTF_8);
我的应用程序尝试读取的每个文件,并通过这样做解决了问题。所以我猜可执行的 .jar 文件默认情况下不使用 UTF-8 编码,我们必须在读取阶段指定它。
关于JavaFx 希腊字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47859380/