我想使用波斯语作为我的字符串进行打印,在编写程序时可以正常运行但在运行时会发生变化。
我该怎么做才能正确设置?
示例代码:
public static void main(String[] args)
{
System.out.print("سلام");
}
Windows命令提示符中的结果只是问号(????????) 在记事本++中它就像L╪│┘ä╪º┘à
波斯语是一种像阿拉伯语一样的中东语言。
答案 0 :(得分:1)
您需要UTF-8编码才能支持波斯语(使用阿拉伯语脚本的略微变体)。在Java中,UTF-8数据可以表示为字节数组。因此,实现所需内容的一种方法是从对应于String
的UTF-8表示的字节数组中创建سلام
:
try {
String str = new String("سلام".getBytes(), "UTF-8");
System.out.println(str);
}
catch (Exception e) {
System.out.println("Something went wrong.");
}
如果您之前从未见过从字节数组创建String
,请查看Javadoc。
Caviat :只有当您的编辑器也使用UTF-8编码时,此答案才有效。这是必需的,这样当波斯语salam字符串转换为字节数组时,编码是正确的。