我StringEscapeUtils#escapeJava
用来转义字符串。其中字符:“é” (带急性的拉丁小写字母 E)转换为“\u00E9”,“
问问题
911 次
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();
于 2017-04-07T21:09:18.660 回答