All three: named (—), decimal numeric (—) and hexadecimal numeric (—), across the full HTML5 named-entity set of over 2,000 names.
Why is my text double-encoded?
Seeing < means the text was encoded twice — usually because a template escaped a value that was already escaped upstream. Decode repeatedly until the output stops changing, then fix the double escaping at its source.