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

JavaApache CommonsApache Commons-LangApache Commons-Lang3

Java Problem Overview

I couldn't find any explanation why StringEscapeUtils was deprecated from Apache Lang3 v3.7.


What are we supposed to use now for HTML escaping/unescaping

Java Solutions

Solution 1 - Java

The class was moved from package

> org.apache.commons.lang3


> org.apache.commons.text

You can replace the deprecated library easily:

In your build.gradle:

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

And in your class using StringEscapeUtils make sure you import the correct class:

import org.apache.commons.text.StringEscapeUtils;

1.9 is currently the newest version (last checked February 24th 2021) but you can check the versions at maven: https://mvnrepository.com/artifact/org.apache.commons/commons-text

Solution 2 - Java

Per the deprecation listing, it was moved to a new project -- commons-text

Solution 3 - Java

From 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

Solution 4 - Java

Do below steps

  • Add below dependency to your pom.xml (if using maven)

  • Import correct package as below
    import org.apache.commons.text.StringEscapeUtils;

  • There is no such method unescapeHtml() in this class anymore, instead its two variations are available unescapeHtml3() and unescapeHtml4()

  • Use unescapeHtml3() to unescape Html 3.0 characters

  • Use unescapeHtml4() to unescape Html 4.0 characters


All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiongene b.View Question on Stackoverflow
Solution 1 - JavaBjörn KechelView Answer on Stackoverflow
Solution 2 - JavaJamie BisottiView Answer on Stackoverflow
Solution 3 - Javafn.View Answer on Stackoverflow
Solution 4 - Javasapan prajapatiView Answer on Stackoverflow