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;
import org.dromara.hutool.core.text.replacer.LookupReplacer;
import org.dromara.hutool.core.text.replacer.ReplacerChain;
/**
* HTML4的ESCAPE
@ -25,9 +26,21 @@ import org.dromara.hutool.core.text.replacer.LookupReplacer;
* @author Looly
*
*/
public class Html4Escape extends XmlEscape {
public class Html4Escape extends ReplacerChain {
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 转义字符
*/
@ -337,6 +350,7 @@ public class Html4Escape extends XmlEscape {
*/
public Html4Escape() {
super();
addChain(new LookupReplacer(BASIC_ESCAPE));
addChain(new LookupReplacer(ISO8859_1_ESCAPE));
addChain(new LookupReplacer(HTML40_EXTENDED_ESCAPE));
}

View File

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