Java 在jar文件上运行时,我的应用程序中未显示Unicode
我构建了一个JavaGUI应用程序,并使用Unicode文本创建了一些Java 在jar文件上运行时,我的应用程序中未显示Unicode,java,netbeans,unicode,Java,Netbeans,Unicode,我构建了一个JavaGUI应用程序,并使用Unicode文本创建了一些jLabel。当我从NetBeans IDE运行应用程序时,文本显示为正确的形式,但当我从.jar文件运行时,文本显示为变形的形式 我的代码: try { jLabel1.setText(new String("ژمارا ناسنامی".getBytes(), "UTF-8")); } catch (UnsupportedEncodingException ex) { Logger.getLogger(da
jLabel
。当我从NetBeans IDE运行应用程序时,文本显示为正确的形式,但当我从.jar
文件运行时,文本显示为变形的形式
我的代码:
try {
jLabel1.setText(new String("ژمارا ناسنامی".getBytes(), "UTF-8"));
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(dataEntry.class.getName()).log(Level.SEVERE, null, ex);
}
输出:
try {
jLabel1.setText(new String("ژمارا ناسنامی".getBytes(), "UTF-8"));
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(dataEntry.class.getName()).log(Level.SEVERE, null, ex);
}
请仅尝试以下操作:
jLabel1.setText("ژمارا ناسنامی");
实际上,这里的错误是首先使用getBytes()对字符串进行编码
使用默认编码,然后将其解码为UTF-8
,这是不正确的,因为您依赖的默认编码不可能是UTF-8
,并且没有用,因为字符串
已经是UTF-16
编码,因此它已经包含了阿拉伯字符
下面是该方法的Javadoc作为提醒:
使用平台的
默认字符集,将结果存储到新的字节数组中。这个
当此字符串无法在中编码时,此方法的行为
默认字符集未指定。CharsetEncoder类应该是
当需要对编码过程进行更多控制时使用
如果要正确编码字符串
,则需要使用或。但再一次,在这种特殊情况下甚至不需要它。请仅尝试以下操作:
jLabel1.setText("ژمارا ناسنامی");
实际上,这里的错误是首先使用getBytes()对字符串进行编码
使用默认编码,然后将其解码为UTF-8
,这是不正确的,因为您依赖的默认编码不可能是UTF-8
,并且没有用,因为字符串
已经是UTF-16
编码,因此它已经包含了阿拉伯字符
下面是该方法的Javadoc作为提醒:
使用平台的
默认字符集,将结果存储到新的字节数组中。这个
当此字符串无法在中编码时,此方法的行为
默认字符集未指定。CharsetEncoder类应该是
当需要对编码过程进行更多控制时使用
如果要正确编码字符串
,则需要使用或。但再一次,在这种特殊情况下甚至不需要它