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 字符串转换为字节数组时,编码是正确的。
我想用波斯语作为我的字符串来打印,写程序的时候没问题,但是运行它就变了。
我该怎么做才能正确设置它?
示例代码:
public static void main(String[] args)
{
System.out.print("سلام");
}
windows命令提示符的结果只有问号(?????????) 在记事本++中就像 L╪│┘ä╪º┘à
波斯语和阿拉伯语一样是中东语言。
您需要使用 UTF-8 编码来支持波斯语(它使用了阿拉伯语脚本的微小变体)。在Java中,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 字符串转换为字节数组时,编码是正确的。