Java 在字符串中展开字符串

Java 在字符串中展开字符串,java,string,utf-8,Java,String,Utf 8,我收到一条来自排队服务的消息,我认为这是一个UTF-8编码的字符串。它原来是字符串中的一个带引号的转义字符串。也就是说,字符串本身的第一个和最后一个字符是“,每个换行符是两个字符\n,引号(因为它是XML)是\”,而外语中的单个UTF-8字符表示为六个字符(例如\uABCD)。我知道我可以通过滚动自己的方式来打开所有这些,但我认为一定有多种方法可以实现这一点。这个咒语可能是什么?在@JonSkeet和@njzk2的反馈之后,我想到了这个,它起了作用: // gradle: 'org.apache

我收到一条来自排队服务的消息,我认为这是一个UTF-8编码的字符串。它原来是字符串中的一个带引号的转义字符串。也就是说,字符串本身的第一个和最后一个字符是
,每个换行符是两个字符
\n
,引号(因为它是XML)是
\”
,而外语中的单个UTF-8字符表示为六个字符(例如
\uABCD
)。我知道我可以通过滚动自己的方式来打开所有这些,但我认为一定有多种方法可以实现这一点。这个咒语可能是什么?

在@JonSkeet和@njzk2的反馈之后,我想到了这个,它起了作用:

// gradle: 'org.apache.commons:commons-lang3:3.3.2'
import org.apache.commons.lang3.StringEscapeUtils;

String s = serviceThatSometimesReturnsQuotedStringWithinString();
String usable = null;
if (s.length() > 0 && s.charAt(0) == '"' && s.charAt(s.length()-1) == '"') {
  usable = StringEscapeUtils.unescapeEcmaScript(s.substring(1, s.length()-1));
} else {
  usable = s;
}

可能的副本实际上只是JSON吗?如果是,请使用JSON解析器。@JonSkeet它不是JSON。肯定是XML内容,转义了。@JonSkeet:既然您提到了它,gknauth描述的内容看起来确实可疑地像json字符串。@gknauth:但转义好像它是json字符串一样?是什么造成的?它是如何记录的?我也应该相信这篇文章: