roff: still the normal way to generate an IETF Internet Standards Draft text document. This mechanism is showing its age though, especially regarding UTF8 and width limitations.
$ printf 'Hello ①②③\n' | preconv
.lf 1 -
Hello \[u2460]\[u2461]\[u2462]
$ printf 'Hello ①②③\n' | groff -k -Tutf8 | grep .
Hello ①②③
$