Provides HTML escaping and unescaping methods.
For HTML parsing see module XML, especially XML.parse_html.
NOTE To use HTML, you must explicitly import it with require "html"
Same as .escape(string) but outputs the result to the given io.
Same as .escape(String, IO) but accepts Bytes instead of String.
Escapes special characters in HTML, namely &, <, >, " and '.
Returns a string where named and numeric character references (e.g.
Same as .escape(string) but outputs the result to the given io.
require "html"
io = IO::Memory.new
HTML.escape("Crystal & You", io) # => nil
io.to_s # => "Crystal & You" Same as .escape(String, IO) but accepts Bytes instead of String.
The slice is assumed to be valid UTF-8.
Escapes special characters in HTML, namely &, <, >, " and '.
require "html"
HTML.escape("Crystal & You") # => "Crystal & You" Returns a string where named and numeric character references (e.g. >, >, >) in string are replaced with the corresponding unicode characters. This method decodes all HTML5 entities including those without a trailing semicolon (such as "©").
require "html"
HTML.unescape("Crystal & You") # => "Crystal & You"
© 2012–2026 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/1.19.0/HTML.html