如何在java中解码未知字符串格式

如何在java中解码未知字符串格式,java,xml,spring,spring-boot,string-decoding,Java,Xml,Spring,Spring Boot,String Decoding,我得到了需要在SpringBoot Rest控制器中处理的xml文件。但是我在解析西里尔字母方面有问题。在我的控制器中,这些符号如下所示:d�鲲 你可以试试这个 String decoded = new String(xmlstring.getBytes("ISO-8859-1")); 你可以试试这个 String decoded = new String(xmlstring.getBytes("ISO-8859-1")); 为什么要混合2个字符集?我正在获取utf-8格式的字符串,并尝

我得到了需要在SpringBoot Rest控制器中处理的xml文件。但是我在解析西里尔字母方面有问题。在我的控制器中,这些符号如下所示:d�鲲 你可以试试这个

String decoded = new String(xmlstring.getBytes("ISO-8859-1")); 

你可以试试这个

String decoded = new String(xmlstring.getBytes("ISO-8859-1")); 

为什么要混合2个字符集?我正在获取utf-8格式的字符串,并尝试将其解码为winsows-1251。字符串本身(概念上)没有编码。编码确定在转换为字节和从字节转换为字符串时如何表示字符串。您的第一行代码不正确:它使用UTF-8编码字符串,然后像解码Windows-1251一样对其进行解码。这是错误的,字节不代表Windows-1251编码的字符串,因为您刚刚将其编码为UTF-8…为什么要混合2个字符集?我正在获取UTF-8格式的字符串,并尝试将其解码为winsows-1251。字符串本身(概念上)没有编码。编码确定在转换为字节和从字节转换为字符串时如何表示字符串。您的第一行代码不正确:它使用UTF-8编码字符串,然后像解码Windows-1251一样对其进行解码。这是错误的,字节不代表Windows-1251编码的字符串,因为您刚刚将其编码为UTF-8。。。