2

URL をエスケープするために StringEscapeUtils.escapeHTML を使用しています。文字列が既にエスケープされているかどうかを調べるのに似たものはありますか?

4

3 に答える 3

6

エスケープされたすべての文字列は同時にエスケープされていない文字列であるため、これは原則として 不可能"a>b"です。"a>b""a>b"

于 2012-09-04T09:54:34.487 に答える
3

私が知っていることではありませんが、自分で行うのは非常に簡単です。

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

@themel が指摘しているように、ランダムな文字列がエスケープされているかどうかを判断することは不可能であることに注意してください。ランダムな文字列でこれを試みると、多くの誤検知が発生する可能性があります。ただし、ここで文字列がどのように見えるかを少なくともある程度制御できると想定しています。

于 2012-09-04T09:53:35.407 に答える
0

純粋な 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);
}
于 2019-01-31T16:25:34.280 に答える