J p*_*cos 6 java applet utf-8 arabic character-encoding
我试图在 Java 小程序中显示阿拉伯字符,但我总是得到问号“?????”。
我尝试了很多解决方案,但都没有成功:
我在西班牙语环境中使用 Windows 7。
某些解决方案在运行 Netbeans 时有效,但它们在此环境之外不起作用。这是带有源代码和 .jar 的 Netbeans 项目。
这是我正在使用的简单代码:
package javaapplication4;
import java.io.ByteArrayOutputStream;
import java.nio.charset.Charset;
import javax.swing.JApplet;
import javax.swing.JOptionPane;
public class JavaApplication4 extends JApplet{
@Override
public void init(){
try {
String str1 = new String("???? ??????? ???? ????? ??? ???".getBytes(), "UTF-8");
JOptionPane.showMessageDialog(rootPane, str1);
String str2 = new String("???? ??????? ???? ??");
ByteArrayOutputStream os = new ByteArrayOutputStream();
os.write(str2.getBytes());
JOptionPane.showMessageDialog(rootPane, os.toString("UTF-8"));
} catch (Exception ex) {
JOptionPane.showMessageDialog(rootPane, ex.toString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
知道发生了什么吗?
我原来的答案是错误的: getBytes() 使用系统的默认编码生成一个字节数组,netbeans 将其设置为 UTF-8。
正确答案:根本不要使用 ByteArrayOutputStream 和 new String(byte[], Charset)。仅使用字符串。应该可以正常工作。
编辑:请参阅实际问题的评论以及解决方案为何不完全可能的解释。
| 归档时间: |
|
| 查看次数: |
32602 次 |
| 最近记录: |