gpt4 book ai didi

java - 字符串转义实用程序 : How to unescape a string except emoji?

转载 作者:行者123 更新时间:2023-12-02 13:28:43 27 4
gpt4 key购买 nike

我正在使用StringEscapeUtils#escapeJava转义字符串。其中字符:“é”(LATIN SMALL LETTER E WITH ACUTE)转换为“\u00E9”和“😅”(SMILING FACE WITH OPEN MOUTH AND COLD SWEAT)转换为“\uD83D\uDE05”。现在如果我想摆脱它们,它们就会恢复到原来的样子。但我想将“\u00E9”转义为“é”并保留“\uD83D\uDE05”原样。我应该怎么做才能使表情符号不被转义而字母被转义?

最佳答案

“完全转义”字符串,然后仅重新转义表情符号可能会更容易。您可以通过使用 Character.isLowSurrogateCharacter.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

关于java - 字符串转义实用程序 : How to unescape a string except emoji?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43287028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com