@Test public void testBelow() { final NumericEntityEscaper nee = NumericEntityEscaper.below('F'); final String input = "ADFGZ"; final String result = nee.translate(input); assertEquals("Failed to escape numeric entities via the below method", "ADFGZ", result); }
@Test public void testEscapeXmlAllCharacters() { // http://www.w3.org/TR/xml/#charsets says: // Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, // excluding the surrogate blocks, FFFE, and FFFF. */ final CharSequenceTranslator escapeXml = StringEscapeUtils.ESCAPE_XML .with(NumericEntityEscaper.below(9), NumericEntityEscaper.between(0xB, 0xC), NumericEntityEscaper.between(0xE, 0x19), NumericEntityEscaper.between(0xD800, 0xDFFF), NumericEntityEscaper.between(0xFFFE, 0xFFFF), NumericEntityEscaper.above(0x110000)); assertEquals("�", escapeXml.translate("\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008")); assertEquals("\t", escapeXml.translate("\t")); // 0x9 assertEquals("\n", escapeXml.translate("\n")); // 0xA assertEquals("", escapeXml.translate("\u000B\u000C")); assertEquals("\r", escapeXml.translate("\r")); // 0xD assertEquals("Hello World! Ain't this great?", escapeXml.translate("Hello World! Ain't this great?")); assertEquals("", escapeXml.translate("\u000E\u000F\u0018\u0019")); }
protected void writeText(QuickWriter writer, String text) { if (cdata) { writer.write("<![CDATA["); writer.write(NumericEntityEscaper.below(0x20).translate(text)); writer.write("]]>"); } else { super.writeText(writer, text); } } };
/** * Writes an attribute definition. */ protected void writeAttribute( String name, String value) { print( " "); print( name); print( "=\""); // StringEscapeUtils escapes symbols ', < >, &, ", and some control characters // NumericEntityEscaper translates additional control characters \n, \t, ... print( NumericEntityEscaper.below(0x20).translate(StringEscapeUtils.escapeXml11(value))); print( "\""); }