1

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

字符串 str1 = "iş ortaklığı";

如果我尝试像 System.setOut(new PrintStream(System.out,true,"UTF-8")); System.out.println(s);

输出是iÅŸ ortaklığı

byte[] utf81 = str1.getBytes("UTF-8"); test3 = 新字符串(utf8);

        System.out.println(test3);

输出是iÅŸ ortaklığı

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

输出是iþ ortaklýðý

但是上面的所有代码在控制台程序中都可以正常工作,它是主方法 主方法打印输出,如
iş ortaklığı

任何建议都必须是可应用的

4

1 回答 1

2

如果你更换

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

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

然后你会得到一个System.outUTF-8 将文本内容编码到标准输出,而不是通过默认编码重新编码。

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

于 2012-12-14T04:57:59.963 回答