为什么不推荐使用 org.apache.common.lang3 StringEscapeUtils?

Why was org.apache.common.lang3 StringEscapeUtils deprecated?

我找不到任何关于为什么 StringEscapeUtils 从 Apache Lang3 v3.7 中弃用的解释。

https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringEscapeUtils.html

我们现在应该用什么 HTML escaping/unescaping

根据 deprecation listing, it was moved to a new project -- commons-text

来自Commons-lang 3.6 release notes

The Apache Commons Community has recently set up the Commons Text component as a home for algorithms working on strings. For this reason most of the string focused functionality in Commons Lang has been deprecated and moved to Commons Text. This includes:

o All classes in the org.apache.commons.lang3.text and the org.apache.commons.lang3.text.translate packages o org.apache.commons.lang3.StringEscapeUtils o org.apache.commons.lang3.RandomStringUtils o The methods org.apache.commons.lang3.StringUtils.getJaroWinklerDistance and org.apache.commons.lang3.StringUtils.getLevenshteinDistance

For more information see the Commons Text website:

http://commons.apache.org/text

class 已从包

中移出

org.apache.commons.lang3

org.apache.commons.text

您可以轻松替换已弃用的库:

在你的 build.gradle:

implementation 'org.apache.commons:commons-text:1.9'

并在您的 class 中使用 StringEscapeUtils 确保导入正确的 class:

import org.apache.commons.text.StringEscapeUtils;

1.9 目前是最新版本(最后一次检查是 2021 年 2 月 24 日),但您可以在 maven 上检查版本: https://mvnrepository.com/artifact/org.apache.commons/commons-text

执行以下步骤

  • 将以下依赖项添加到您的 pom.xml(如果使用 maven)
    <依赖项>
    org.apache.commons
    commons-text
    <版本>1.4
    <依赖关系>

  • 导入正确的包如下
    导入org.apache.commons.text.StringEscapeUtils;

  • 在这个 class 中不再有这样的方法 unescapeHtml() ,取而代之的是它的两个 变化是可用的 unescapeHtml3() 和 unescapeHtml4()
  • 使用 unescapeHtml3() 反转义 Html 3.0 个字符
  • 使用 unescapeHtml4() 反转义 Html 4.0 个字符