我想使用波斯语作为我的字符串来打印,编写程序时没问题,但运行时它会改变。
我能做些什么来纠正它?
示例代码:
public static void main(String[] args)
{
System.out.print("سلام");
}
Windows命令提示符中的结果只是问号(?????????) 在 Notepad++ 中它就像L╪│┘ä╪º┘à
波斯语和阿拉伯语一样是中东语言。
最佳答案
您需要 UTF-8 编码来支持波斯语(它使用阿拉伯语脚本的轻微变体)。在Java中,UTF-8数据可以表示为字节数组。因此,实现您想要的目的的一种方法是从与 Sracum
的 UTF-8 表示相对应的字节数组创建一个 String
:
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 编码时,此答案才有效。这是必需的,以便当波斯语萨拉姆字符串转换为字节数组时,编码是正确的。
关于java - 使用其他语言而不是英语作为java字符串(以波斯语为例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36496977/