.Dd April 5, 2016 .Dt he 1 .Sh NAME .Nm he .Nd encode/decode HTML entities just like a browser would .Sh SYNOPSIS .Nm .Op Fl -escape Ar string .br .Op Fl -encode Ar string .br .Op Fl -encode Fl -use-named-refs Fl -everything Fl -allow-unsafe Ar string .br .Op Fl -decode Ar string .br .Op Fl -decode Fl -attribute Ar string .br .Op Fl -decode Fl -strict Ar string .br .Op Fl v | -version .br .Op Fl h | -help .Sh DESCRIPTION .Nm encodes/decodes HTML entities in strings just like a browser would. .Sh OPTIONS .Bl -ohang -offset .It Sy "--escape" Take a string of text and escape it for use in text contexts in XML or HTML documents. Only the following characters are escaped: `&`, `<`, `>`, `"`, and `'`. .It Sy "--encode" Take a string of text and encode any symbols that aren't printable ASCII symbols and that can be replaced with character references. For example, it would turn `©` into `©`, but it wouldn't turn `+` into `+` since there is no point in doing so. Additionally, it replaces any remaining non-ASCII symbols with a hexadecimal escape sequence (e.g. `𝌆`). The return value of this function is always valid HTML. .It Sy "--encode --use-named-refs" Enable the use of named character references (like `©`) in the output. If compatibility with older browsers is a concern, don't use this option. .It Sy "--encode --everything" Encode every symbol in the input string, even safe printable ASCII symbols. .It Sy "--encode --allow-unsafe" Encode non-ASCII characters only. This leaves unsafe HTML/XML symbols like `&`, `<`, `>`, `"`, and `'` intact. .It Sy "--encode --decimal" Use decimal digits rather than hexadecimal digits for encoded character references, e.g. output `©` instead of `©`. .It Sy "--decode" Takes a string of HTML and decode any named and numerical character references in it using the algorithm described in the HTML spec. .It Sy "--decode --attribute" Parse the input as if it was an HTML attribute value rather than a string in an HTML text content. .It Sy "--decode --strict" Throw an error if an invalid character reference is encountered. .It Sy "-v, --version" Print he's version. .It Sy "-h, --help" Show the help screen. .El .Sh EXIT STATUS The .Nm he utility exits with one of the following values: .Pp .Bl -tag -width flag -compact .It Li 0 .Nm did what it was instructed to do successfully; either it encoded/decoded the input and printed the result, or it printed the version or usage message. .It Li 1 .Nm encountered an error. .El .Sh EXAMPLES .Bl -ohang -offset .It Sy "he --escape '<script>alert(1)</script>'" Print an escaped version of the given string that is safe for use in HTML text contexts, escaping only `&`, `<`, `>`, `"`, and `'`. .It Sy "he --decode '©𝌆'" Print the decoded version of the given HTML string. .It Sy "echo\ '©𝌆'\ |\ he --decode" Print the decoded version of the HTML string that gets piped in. .El .Sh BUGS he's bug tracker is located at <https://github.com/mathiasbynens/he/issues>. .Sh AUTHOR Mathias Bynens <https://mathiasbynens.be/> .Sh WWW <https://mths.be/he>