Java Swing在构建后未正确显示表情符号

Java Swing在构建后未正确显示表情符号,java,Java,我的Java应用程序包含显示表情符号的标签和用其他语言(如印地语)显示某些信息的文本字段 当我从IDE(Netbeans)运行它时,它会正确地显示表情符号和文本字段中的文本 但当我构建它并直接从.JAR运行时,它会显示一些类似这样的字符 我已经设置了字体,但它只能在IDE中使用,而不能在构建之后使用。 Textfield还显示与上面的标签相同的无法识别字符,该标签由DEMO制作您可以在运行jar文件时尝试file.encoding选项 java -Dfile.encoding="U

我的Java应用程序包含显示表情符号的标签和用其他语言(如印地语)显示某些信息的文本字段 当我从IDE(Netbeans)运行它时,它会正确地显示表情符号和文本字段中的文本

但当我构建它并直接从.JAR运行时,它会显示一些类似这样的字符

我已经设置了字体,但它只能在IDE中使用,而不能在构建之后使用。
Textfield还显示与上面的标签相同的无法识别字符,该标签由DEMO制作

您可以在运行jar文件时尝试file.encoding选项

java -Dfile.encoding="UTF-8" -jar MyApplication.jar

@camickr我如何检查?编辑您的问题并显示生成“make With”组件文本的代码。我怀疑您是在未指定字符集的情况下从字节创建字符串。@VGR我是在“属性”选项卡中直接为标签设置文本。下面的答案提到了使用UTF-8。是否有一种方法可以在构建整个应用程序时设置它。我是否可以假设您打算编写
jlabel1.setText(“用♥ 通过演示)?正确的修复方法是确保在编译时正确解释源文件。如果在命令行上编译,请使用
-encoding UTF-8
。例如:
javac-encoding UTF-8 Developer.java
请参阅。一旦类被编译,编译后的.class文件中的字符串常量无论以何种方式或在何处运行都是正确的,因为Java运行时总是以相同的方式解释它们。