Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFx希腊字符编码_Java_Eclipse_Javafx_Encoding_Utf 8 - Fatal编程技术网

JavaFx希腊字符编码

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 但这对我来说没有任何意义,因为我

我最近在eclipse中创建了一个应用程序。我把它作为一个可运行的罐子出口,除了希腊字母外,所有的英语都很好用。当我尝试导入应用程序中包含希腊字符的文件时,这些字符不会正确显示。我尝试将所有编码更改为UTF-8,但没有成功。我也有希腊菜单的确切应用程序,但它也没有正确显示。到目前为止,唯一的修复方法是创建一个可运行的.bat文件并将其粘贴到其中:

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。正如我所说,我用问题中指定的代码运行它,它运行得很好。我真的不清楚这个问题。或者,如果您已经通过在可交付成果中指定文件编码来解决了这个问题,那么是否存在问题?这将是确定的方法。默认值是由用户控制并随意改变的。