0

StringEscapeUtils#escapeJava用来转义字符串。其中字符:“é” (带急性的拉丁小写字母 E)转换为“\u00E9”,“

4

1 回答 1

1

“完全取消转义”字符串可能更容易,然后只重新转义表情符号。Character.isLowSurrogate您可以通过使用和检测代理对字符来做到这一点Character.isHighSurrogate

例如:

StringBuilder sb = new StringBuilder(str.length());
for (int i = 0; i < str.length(); ++i) {
  char c = str.charAt(i);
  if (Character.isHighSurrogate(c) || Character.isLowSurrogate(c)) {
    // Append the escaped character.
    sb.append("\\u");
    sb.append(String.format("%04x", (int) c));
  } else {
    // Append the character as-is.
    sb.append(c);
  }
}
String partlyEscaped = sb.toString();

Ideone demo

于 2017-04-07T21:09:18.660 回答