I don't know about other systems, but on Plan 9, where UTF-8 was invented, troff handles it just fine:
$ printf 'Hello ①②③\n' | preconv
.lf 1 -
Hello \[u2460]\[u2461]\[u2462]
$ printf 'Hello ①②③\n' | groff -k -Tutf8 | grep .
Hello ①②③
$