java 字符串使用其他语言而不是英语(例如波斯语)

Using other languages rather than English for java strings (Persian as an example)

我想用波斯语作为我的字符串来打印,写程序的时候没问题,但是运行它就变了。
我该怎么做才能正确设置它?

示例代码:

public static void main(String[] args)
    {
        System.out.print("سلام");
    }

windows命令提示符的结果只有问号(?????????) 在记事本++中就像 L╪│┘ä╪º┘à

波斯语和阿拉伯语一样是中东语言。

您需要使用 UTF-8 编码来支持波斯语(它使用了阿拉伯语脚本的微小变体)。在Java中,UTF-8数据可以表示为字节数组。因此,实现您想要的一种方法是从与 سلام:

的 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: 仅当您的 editor 也使用 UTF-8 编码时,此答案才有效。这是必需的,以便在将波斯语 salam 字符串转换为字节数组时,编码是正确的。