fix escape bug

This commit is contained in:
Looly 2025-01-09 19:17:15 +08:00
parent 89dd871af7
commit c72f859aff
2 changed files with 16 additions and 2 deletions

View File

@ -17,6 +17,7 @@
package org.dromara.hutool.core.text.escape; package org.dromara.hutool.core.text.escape;
import org.dromara.hutool.core.text.replacer.LookupReplacer; import org.dromara.hutool.core.text.replacer.LookupReplacer;
import org.dromara.hutool.core.text.replacer.ReplacerChain;
/** /**
* HTML4的ESCAPE * HTML4的ESCAPE
@ -25,9 +26,21 @@ import org.dromara.hutool.core.text.replacer.LookupReplacer;
* @author Looly * @author Looly
* *
*/ */
public class Html4Escape extends XmlEscape { public class Html4Escape extends ReplacerChain {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* HTML转义字符<br>
* HTML转义相比XML并不转义单引号<br>
* https://stackoverflow.com/questions/1091945/what-characters-do-i-need-to-escape-in-xml-documents
*/
protected static final String[][] BASIC_ESCAPE = { //
{"\"", "&quot;"}, // " - double-quote
{"&", "&amp;"}, // & - ampersand
{"<", "&lt;"}, // < - less-than
{">", "&gt;"}, // > - greater-than
};
/** /**
* ISO8859_1 转义字符 * ISO8859_1 转义字符
*/ */
@ -337,6 +350,7 @@ public class Html4Escape extends XmlEscape {
*/ */
public Html4Escape() { public Html4Escape() {
super(); super();
addChain(new LookupReplacer(BASIC_ESCAPE));
addChain(new LookupReplacer(ISO8859_1_ESCAPE)); addChain(new LookupReplacer(ISO8859_1_ESCAPE));
addChain(new LookupReplacer(HTML40_EXTENDED_ESCAPE)); addChain(new LookupReplacer(HTML40_EXTENDED_ESCAPE));
} }

View File

@ -40,7 +40,7 @@ public class XmlEscape extends ReplacerChain {
* XML转义字符 * XML转义字符
*/ */
protected static final String[][] BASIC_ESCAPE = { // protected static final String[][] BASIC_ESCAPE = { //
// {"'", "&apos;"}, // " - single-quote {"'", "&apos;"}, // " - single-quote
{"\"", "&quot;"}, // " - double-quote {"\"", "&quot;"}, // " - double-quote
{"&", "&amp;"}, // & - ampersand {"&", "&amp;"}, // & - ampersand
{"<", "&lt;"}, // < - less-than {"<", "&lt;"}, // < - less-than