在String中展开String

时间:2014-12-05 16:12:55

标签: java string utf-8

我收到了排队服务的消息,我认为这是一个UTF-8编码的字符串。结果是String中的引用和转义字符串。也就是说,字符串本身的第一个和最后一个字符是",每个换行符是两个字符\n,引号(很多因为这是XML)是\",而单个UTF-外语中的8个字符表示为六个字符(例如,\uABCD)。我知道我可以通过滚动自己解开所有这些,但我认为必须有一组方法可以做到这一点。咒语可能是什么?

1 个答案:

答案 0 :(得分:0)

在@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;
}