Class StringEscapeUtils
- java.lang.Object
-
- org.apache.commons.lang.StringEscapeUtils
-
public class StringEscapeUtils extends Object
Escapes and unescapes
String
s for Java, Java Script, HTML, XML, and SQL.#ThreadSafe#
- Since:
- 2.0
- Version:
- $Id: StringEscapeUtils.java 1057072 2011-01-10 01:55:57Z niallp $
-
-
Constructor Summary
Constructors Constructor Description StringEscapeUtils()
StringEscapeUtils
instances should NOT be constructed in standard programming.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
escapeCsv(Writer out, String str)
Writes aString
value for a CSV column enclosed in double quotes, if required.static String
escapeCsv(String str)
Returns aString
value for a CSV column enclosed in double quotes, if required.static void
escapeHtml(Writer writer, String string)
Escapes the characters in aString
using HTML entities and writes them to aWriter
.static String
escapeHtml(String str)
Escapes the characters in aString
using HTML entities.static void
escapeJava(Writer out, String str)
Escapes the characters in aString
using Java String rules to aWriter
.static String
escapeJava(String str)
Escapes the characters in aString
using Java String rules.static void
escapeJavaScript(Writer out, String str)
Escapes the characters in aString
using JavaScript String rules to aWriter
.static String
escapeJavaScript(String str)
Escapes the characters in aString
using JavaScript String rules.static String
escapeSql(String str)
Escapes the characters in aString
to be suitable to pass to an SQL query.static void
escapeXml(Writer writer, String str)
Escapes the characters in aString
using XML entities.static String
escapeXml(String str)
Escapes the characters in aString
using XML entities.static void
unescapeCsv(Writer out, String str)
Returns aString
value for an unescaped CSV column.static String
unescapeCsv(String str)
Returns aString
value for an unescaped CSV column.static void
unescapeHtml(Writer writer, String string)
Unescapes a string containing entity escapes to a string containing the actual Unicode characters corresponding to the escapes.static String
unescapeHtml(String str)
Unescapes a string containing entity escapes to a string containing the actual Unicode characters corresponding to the escapes.static void
unescapeJava(Writer out, String str)
Unescapes any Java literals found in theString
to aWriter
.static String
unescapeJava(String str)
Unescapes any Java literals found in theString
.static void
unescapeJavaScript(Writer out, String str)
Unescapes any JavaScript literals found in theString
to aWriter
.static String
unescapeJavaScript(String str)
Unescapes any JavaScript literals found in theString
.static void
unescapeXml(Writer writer, String str)
Unescapes a string containing XML entity escapes to a string containing the actual Unicode characters corresponding to the escapes.static String
unescapeXml(String str)
Unescapes a string containing XML entity escapes to a string containing the actual Unicode characters corresponding to the escapes.
-
-
-
Constructor Detail
-
StringEscapeUtils
public StringEscapeUtils()
StringEscapeUtils
instances should NOT be constructed in standard programming.Instead, the class should be used as:
StringEscapeUtils.escapeJava("foo");
This constructor is public to permit tools that require a JavaBean instance to operate.
-
-
Method Detail
-
escapeJava
public static String escapeJava(String str)
Escapes the characters in a
String
using Java String rules.Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.)
So a tab becomes the characters
'\\'
and't'
.The only difference between Java strings and JavaScript strings is that in JavaScript, a single quote must be escaped.
Example:
input string: He didn't say, "Stop!" output string: He didn't say, \"Stop!\"
- Parameters:
str
- String to escape values in, may be null- Returns:
- String with escaped values,
null
if null string input
-
escapeJava
public static void escapeJava(Writer out, String str) throws IOException
Escapes the characters in a
String
using Java String rules to aWriter
.A
null
string input has no effect.- Parameters:
out
- Writer to write escaped string intostr
- String to escape values in, may be null- Throws:
IllegalArgumentException
- if the Writer isnull
IOException
- if error occurs on underlying Writer- See Also:
escapeJava(java.lang.String)
-
escapeJavaScript
public static String escapeJavaScript(String str)
Escapes the characters in a
String
using JavaScript String rules.Escapes any values it finds into their JavaScript String form. Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.)
So a tab becomes the characters
'\\'
and't'
.The only difference between Java strings and JavaScript strings is that in JavaScript, a single quote must be escaped.
Example:
input string: He didn't say, "Stop!" output string: He didn\'t say, \"Stop!\"
- Parameters:
str
- String to escape values in, may be null- Returns:
- String with escaped values,
null
if null string input
-
escapeJavaScript
public static void escapeJavaScript(Writer out, String str) throws IOException
Escapes the characters in a
String
using JavaScript String rules to aWriter
.A
null
string input has no effect.- Parameters:
out
- Writer to write escaped string intostr
- String to escape values in, may be null- Throws:
IllegalArgumentException
- if the Writer isnull
IOException
- if error occurs on underlying Writer- See Also:
escapeJavaScript(java.lang.String)
-
unescapeJava
public static String unescapeJava(String str)
Unescapes any Java literals found in the
String
. For example, it will turn a sequence of'\'
and'n'
into a newline character, unless the'\'
is preceded by another'\'
.- Parameters:
str
- theString
to unescape, may be null- Returns:
- a new unescaped
String
,null
if null string input
-
unescapeJava
public static void unescapeJava(Writer out, String str) throws IOException
Unescapes any Java literals found in the
String
to aWriter
.For example, it will turn a sequence of
'\'
and'n'
into a newline character, unless the'\'
is preceded by another'\'
.A
null
string input has no effect.- Parameters:
out
- theWriter
used to output unescaped charactersstr
- theString
to unescape, may be null- Throws:
IllegalArgumentException
- if the Writer isnull
IOException
- if error occurs on underlying Writer
-
unescapeJavaScript
public static String unescapeJavaScript(String str)
Unescapes any JavaScript literals found in the
String
.For example, it will turn a sequence of
'\'
and'n'
into a newline character, unless the'\'
is preceded by another'\'
.- Parameters:
str
- theString
to unescape, may be null- Returns:
- A new unescaped
String
,null
if null string input - See Also:
unescapeJava(String)
-
unescapeJavaScript
public static void unescapeJavaScript(Writer out, String str) throws IOException
Unescapes any JavaScript literals found in the
String
to aWriter
.For example, it will turn a sequence of
'\'
and'n'
into a newline character, unless the'\'
is preceded by another'\'
.A
null
string input has no effect.- Parameters:
out
- theWriter
used to output unescaped charactersstr
- theString
to unescape, may be null- Throws:
IllegalArgumentException
- if the Writer isnull
IOException
- if error occurs on underlying Writer- See Also:
unescapeJava(Writer,String)
-
escapeHtml
public static String escapeHtml(String str)
Escapes the characters in a
String
using HTML entities.For example:
becomes:"bread" & "butter"
"bread" & "butter"
.Supports all known HTML 4.0 entities, including funky accents. Note that the commonly used apostrophe escape character (') is not a legal entity and so is not supported).
- Parameters:
str
- theString
to escape, may be null- Returns:
- a new escaped
String
,null
if null string input - See Also:
unescapeHtml(String)
, ISO Entities, HTML 3.2 Character Entities for ISO Latin-1, HTML 4.0 Character entity references, HTML 4.01 Character References, HTML 4.01 Code positions
-
escapeHtml
public static void escapeHtml(Writer writer, String string) throws IOException
Escapes the characters in a
String
using HTML entities and writes them to aWriter
.For example:
"bread" & "butter"
becomes:
"bread" & "butter"
.Supports all known HTML 4.0 entities, including funky accents. Note that the commonly used apostrophe escape character (') is not a legal entity and so is not supported).
- Parameters:
writer
- the writer receiving the escaped string, not nullstring
- theString
to escape, may be null- Throws:
IllegalArgumentException
- if the writer is nullIOException
- whenWriter
passed throws the exception from calls to theWriter.write(int)
methods.- See Also:
escapeHtml(String)
,unescapeHtml(String)
, ISO Entities, HTML 3.2 Character Entities for ISO Latin-1, HTML 4.0 Character entity references, HTML 4.01 Character References, HTML 4.01 Code positions
-
unescapeHtml
public static String unescapeHtml(String str)
Unescapes a string containing entity escapes to a string containing the actual Unicode characters corresponding to the escapes. Supports HTML 4.0 entities.
For example, the string "<Français>" will become "<Français>"
If an entity is unrecognized, it is left alone, and inserted verbatim into the result string. e.g. ">&zzzz;x" will become ">&zzzz;x".
- Parameters:
str
- theString
to unescape, may be null- Returns:
- a new unescaped
String
,null
if null string input - See Also:
escapeHtml(Writer, String)
-
unescapeHtml
public static void unescapeHtml(Writer writer, String string) throws IOException
Unescapes a string containing entity escapes to a string containing the actual Unicode characters corresponding to the escapes. Supports HTML 4.0 entities.
For example, the string "<Français>" will become "<Français>"
If an entity is unrecognized, it is left alone, and inserted verbatim into the result string. e.g. ">&zzzz;x" will become ">&zzzz;x".
- Parameters:
writer
- the writer receiving the unescaped string, not nullstring
- theString
to unescape, may be null- Throws:
IllegalArgumentException
- if the writer is nullIOException
- if an IOException occurs- See Also:
escapeHtml(String)
-
escapeXml
public static void escapeXml(Writer writer, String str) throws IOException
Escapes the characters in a
String
using XML entities.For example: "bread" & "butter" => "bread" & "butter".
Supports only the five basic XML entities (gt, lt, quot, amp, apos). Does not support DTDs or external entities.
Note that unicode characters greater than 0x7f are currently escaped to their numerical \\u equivalent. This may change in future releases.
- Parameters:
writer
- the writer receiving the unescaped string, not nullstr
- theString
to escape, may be null- Throws:
IllegalArgumentException
- if the writer is nullIOException
- if there is a problem writing- See Also:
unescapeXml(java.lang.String)
-
escapeXml
public static String escapeXml(String str)
Escapes the characters in a
String
using XML entities.For example: "bread" & "butter" => "bread" & "butter".
Supports only the five basic XML entities (gt, lt, quot, amp, apos). Does not support DTDs or external entities.
Note that unicode characters greater than 0x7f are currently escaped to their numerical \\u equivalent. This may change in future releases.
- Parameters:
str
- theString
to escape, may be null- Returns:
- a new escaped
String
,null
if null string input - See Also:
unescapeXml(java.lang.String)
-
unescapeXml
public static void unescapeXml(Writer writer, String str) throws IOException
Unescapes a string containing XML entity escapes to a string containing the actual Unicode characters corresponding to the escapes.
Supports only the five basic XML entities (gt, lt, quot, amp, apos). Does not support DTDs or external entities.
Note that numerical \\u unicode codes are unescaped to their respective unicode characters. This may change in future releases.
- Parameters:
writer
- the writer receiving the unescaped string, not nullstr
- theString
to unescape, may be null- Throws:
IllegalArgumentException
- if the writer is nullIOException
- if there is a problem writing- See Also:
escapeXml(String)
-
unescapeXml
public static String unescapeXml(String str)
Unescapes a string containing XML entity escapes to a string containing the actual Unicode characters corresponding to the escapes.
Supports only the five basic XML entities (gt, lt, quot, amp, apos). Does not support DTDs or external entities.
Note that numerical \\u unicode codes are unescaped to their respective unicode characters. This may change in future releases.
- Parameters:
str
- theString
to unescape, may be null- Returns:
- a new unescaped
String
,null
if null string input - See Also:
escapeXml(String)
-
escapeSql
public static String escapeSql(String str)
Escapes the characters in a
String
to be suitable to pass to an SQL query.For example,
statement.executeQuery("SELECT * FROM MOVIES WHERE TITLE='" + StringEscapeUtils.escapeSql("McHale's Navy") + "'");
At present, this method only turns single-quotes into doubled single-quotes (
see http://www.jguru.com/faq/view.jsp?EID=8881"McHale's Navy"
=>"McHale''s Navy"
). It does not handle the cases of percent (%) or underscore (_) for use in LIKE clauses.- Parameters:
str
- the string to escape, may be null- Returns:
- a new String, escaped for SQL,
null
if null string input
-
escapeCsv
public static String escapeCsv(String str)
Returns a
String
value for a CSV column enclosed in double quotes, if required.If the value contains a comma, newline or double quote, then the String value is returned enclosed in double quotes.
Any double quote characters in the value are escaped with another double quote.
If the value does not contain a comma, newline or double quote, then the String value is returned unchanged.
see Wikipedia and RFC 4180.- Parameters:
str
- the input CSV column String, may be null- Returns:
- the input String, enclosed in double quotes if the value contains a comma,
newline or double quote,
null
if null string input - Since:
- 2.4
-
escapeCsv
public static void escapeCsv(Writer out, String str) throws IOException
Writes a
String
value for a CSV column enclosed in double quotes, if required.If the value contains a comma, newline or double quote, then the String value is written enclosed in double quotes.
Any double quote characters in the value are escaped with another double quote.
If the value does not contain a comma, newline or double quote, then the String value is written unchanged (null values are ignored).
see Wikipedia and RFC 4180.- Parameters:
str
- the input CSV column String, may be nullout
- Writer to write input string to, enclosed in double quotes if it contains a comma, newline or double quote- Throws:
IOException
- if error occurs on underlying Writer- Since:
- 2.4
-
unescapeCsv
public static String unescapeCsv(String str)
Returns a
String
value for an unescaped CSV column.If the value is enclosed in double quotes, and contains a comma, newline or double quote, then quotes are removed.
Any double quote escaped characters (a pair of double quotes) are unescaped to just one double quote.
If the value is not enclosed in double quotes, or is and does not contain a comma, newline or double quote, then the String value is returned unchanged.
see Wikipedia and RFC 4180.- Parameters:
str
- the input CSV column String, may be null- Returns:
- the input String, with enclosing double quotes removed and embedded double
quotes unescaped,
null
if null string input - Since:
- 2.4
-
unescapeCsv
public static void unescapeCsv(Writer out, String str) throws IOException
Returns a
String
value for an unescaped CSV column.If the value is enclosed in double quotes, and contains a comma, newline or double quote, then quotes are removed.
Any double quote escaped characters (a pair of double quotes) are unescaped to just one double quote.
If the value is not enclosed in double quotes, or is and does not contain a comma, newline or double quote, then the String value is returned unchanged.
see Wikipedia and RFC 4180.- Parameters:
str
- the input CSV column String, may be nullout
- Writer to write the input String to, with enclosing double quotes removed and embedded double quotes unescaped,null
if null string input- Throws:
IOException
- if error occurs on underlying Writer- Since:
- 2.4
-
-