JavaFx希腊字符编码
我最近在eclipse中创建了一个应用程序。我把它作为一个可运行的罐子出口,除了希腊字母外,所有的英语都很好用。当我尝试导入应用程序中包含希腊字符的文件时,这些字符不会正确显示。我尝试将所有编码更改为UTF-8,但没有成功。我也有希腊菜单的确切应用程序,但它也没有正确显示。到目前为止,唯一的修复方法是创建一个可运行的.bat文件并将其粘贴到其中:JavaFx希腊字符编码,java,eclipse,javafx,encoding,utf-8,Java,Eclipse,Javafx,Encoding,Utf 8,我最近在eclipse中创建了一个应用程序。我把它作为一个可运行的罐子出口,除了希腊字母外,所有的英语都很好用。当我尝试导入应用程序中包含希腊字符的文件时,这些字符不会正确显示。我尝试将所有编码更改为UTF-8,但没有成功。我也有希腊菜单的确切应用程序,但它也没有正确显示。到目前为止,唯一的修复方法是创建一个可运行的.bat文件并将其粘贴到其中: start cmd /k java -Dfile.encoding=UTF-8 -jar Compiler.jar 但这对我来说没有任何意义,因为我
start cmd /k java -Dfile.encoding=UTF-8 -jar Compiler.jar
但这对我来说没有任何意义,因为我项目中的每个文件和文件夹都使用UTF-8编码。我正在使用Windows10、最新的eclipse和JavaFXforEclipse
希腊字母存在于项目中的某些文件中,例如src/grammars/xx文件。应用程序可以找到它们并毫无问题地读取它们。希腊字母也显示在申请的标签和标题上。我使用javafx环境的默认字体。
例如,一个文件包含以下内容:I->#E|ε。导入到程序时,它会更改为:I->#E|Ξµ
我还想补充一点,为了从.jar中读取这些文件,我必须使用InputStream。因此,可以指定InputStream的编码吗?对于任何安装的人都可以。我找到了解决问题的办法。我加了一个
InputStreamReader inputReader=新的InputStreamReader(streamIn,StandardCharsets.UTF_8)代码>
我的应用程序尝试读取的每个文件,通过这样做,它修复了问题。因此,我猜可执行文件.jar在默认情况下没有使用UTF-8编码,我们必须在读取阶段指定它。希腊字母在哪里?源文件,源文件,还是从某处加载?除非为-Dfile.encoding
指定一个值,否则平台默认值将用于文件操作,因此这是正常Windows计算机中的预期行为。您的java应用程序是否有权访问该字体?尝试从命令行(cmd/terminal)运行它,看看它是否抛出错误,然后从命令行更新questionNo probelm。正如我所说,我用问题中指定的代码运行它,它运行得很好。我真的不清楚这个问题。或者,如果您已经通过在可交付成果中指定文件编码来解决了这个问题,那么是否存在问题?这将是确定的方法。默认值是由用户控制并随意改变的。