StringEscapeUtils找出是否字符串逃过(StringEscapeUtils find

2019-09-22 02:56发布

我一直在使用StringEscapeUtils.escapeHTML逃脱的URL。 是否有类似的东西,以找出是否该字符串已逃走?

Answer 1:

不,我知道的,但它是很容易自己做一个:

public boolean isEscaped(String url) {
    return !url.equals(StringEscapeUtils.unEscapeHTML(url));
}

请注意,或者决定不如果一个随机字符串被转义是不可能的,因为@themel笔记,如果你试图用这个随机字符串,你可以得到很多误报。 不过我假设你至少可以在你的琴弦的样子这里一些控制。



Answer 2:

这在原则上是不可能的,因为每一个转义字符串是在同一时间不转义字符串,如"a>b"可以是两者逸出版本"a>b"或简单地文字串"a>b"逸出之前。



Answer 3:

如果你只是想,直到你得到的纯HTML标记尝试这个递归方法逃避任何字符串:

    public static String unescapeHtml(String string) {
    if (org.apache.commons.lang3.StringUtils.isBlank(string)) {
        return "";
    }
    String unescapedString = StringEscapeUtils.unescapeHtml(string);
    return string.equals(StringEscapeUtils.unescapeHtml(string)) ? unescapedString : unescapeHtml(unescapedString);
}


文章来源: StringEscapeUtils find out if string is escaped