我在我的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ığı
任何建议必须是适合的
答案 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。