我试图在 Java 小程序中显示阿拉伯字符,但我总是得到问号'?????'。
我尝试了许多没有成功的解决方案:
- 使用 new String(bytes [], charsetName) 到 UTF-8 decode。
- 更改 Netbeans 中的默认字符集:VM 选项中的 -Dfile.encoding=UTF8 和编译选项中的 -encoding UTF8。
- 使用 ByteArrayOutputStream 进行编码。
- 同时使用 UTF8 和 UTF-8 字符集名称。
我在西班牙语环境中使用 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());
}
}
}
知道发生了什么吗?