print字符串包含java中的turkey字符

时间:2012-12-14 04:50:08

标签: java string

我在我的spring控制器中创建一个字符串,它包含土耳其字符

String str1 =“işortaklığı”;

如果我尝试打印它就像 System.setOut(new PrintStream(System.out,true,“UTF-8”));               的System.out.println(一个或多个);

输出iÅŸortaklığı

byte [] utf81 = str1.getBytes(“UTF-8”);              test3 = new String(utf8);

        System.out.println(test3);

输出iÅŸortaklığı

byte [] utf8 = str1.getBytes(“windows-1254”);              test3 = new String(“windows-1254”);

输出iþortaklýðý

但以上所有代码在主程序的控制台程序中运行良好 main方法打印输出如
 işortaklığı

任何建议必须是适合的

1 个答案:

答案 0 :(得分:2)

如果您更换

System.setOut(new PrintStream(System.out,true,"UTF-8")); 

System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out),true,"UTF-8"));

然后你会得到一个System.out,UTF-8将文本内容编码为stdout而不是重新编码默认编码。

Java, default encoding解释了Java的默认编码以及如何操作它。如果您可以控制程序的运行方式,则可能需要将默认编码强制为UTF-8。